Google CSE открыть в новом окне - PullRequest
9 голосов
/ 11 декабря 2011

Я хотел бы интегрировать панель поиска Google на свой сайт и использовать код по умолчанию от Google CSE:

        <div id="cse-search-form" style="width: 100%;">Loading</div>
<script src="https://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript"> 
  google.load('search', '1', {language : 'en'});
  google.setOnLoadCallback(function() {
    var customSearchOptions = {};

    var imageSearchOptions = {};
    imageSearchOptions['layout'] = google.search.ImageSearch.LAYOUT_POPUP;
    customSearchOptions['enableImageSearch'] = true;
    customSearchOptions['imageSearchOptions'] = imageSearchOptions;

    var customSearchControl = new google.search.CustomSearchControl(
      '003243520079760326318:WMX-1462312306', customSearchOptions);

    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
    var options = new google.search.DrawOptions();
    options.setSearchFormRoot('cse-search-form');
    options.setAutoComplete(true);
    customSearchControl.draw('shop.htm/cse', options);
  }, true);

Вслед за стилем и </div>

Но я не хочу, чтобы результаты открывались на той же странице, я хочу, чтобы они открывались в searchresults.htm, в котором есть контейнер div

<div id="cse" style="width:100%;"></div> 

если я введу эту форму:

<form action="http://www.amberantiques.com/searchresults.htm" id="cse-search-box">
    <fieldset style="border:none;">
        <input type="hidden" name="cx" value="003243520079760326318:WMX-1462312306" />
        <input type="hidden" name="ie" value="UTF-8" />
        <input type="text" name="q" size="31" />
        <input type="submit" name="sa" value="Search" />
    </fieldset>
</form>

Затем форма отправляет ее на страницу, но не запускает поиск, но если вы затем используете панель Google на странице, поиск выполняется нормально.

По сути, как вы получаете панель Google, чтобы открыть страницу результатов?

Приветствия

Ответы [ 6 ]

14 голосов
/ 10 августа 2012

Если вы обновите Google Code V2 до последней версии, этого можно добиться, отредактировав код, вставленный для отображения результатов.

<gcse:search></gcse:search>

Измените его на

<gcse:search linktarget="_parent"></gcse:search>
5 голосов
/ 22 декабря 2011

Можете ли вы проверить, поставив этот код?

options.enableSearchboxOnly("http://www.amberantiques.com/searchresults.htm");

между этой строкой

var options = new google.search.DrawOptions();

и эта строка

options.setSearchFormRoot('cse-search-form');

Затем поместите следующий код в searchresults.htm

<div id="cse" style="width: 100%;">Loading</div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
    function parseQueryFromUrl() {
    var queryParamName = "q";
    var search = window.location.search.substr(1);
    var parts = search.split('&');
    for (var i = 0; i < parts.length; i++) {
        var keyvaluepair = parts[i].split('=');
        if (decodeURIComponent(keyvaluepair[0]) == queryParamName) {
            return decodeURIComponent(keyvaluepair[1].replace(/\+/g, ' '));
        }
    }
    return '';
}

google.load('search', '1', {language : 'en'});
google.setOnLoadCallback(function () {
    var customSearchControl = new google.search.CustomSearchControl(
  '003243520079760326318:WMX-1462312306', customSearchOptions);

    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
    customSearchControl.draw('cse');
    var queryFromUrl = parseQueryFromUrl();
    if (queryFromUrl) {
        customSearchControl.execute(queryFromUrl);
    }
}, true);
</script>

Если это не работает, вы можете просто прочитать документацию , предоставленную Google. Вы получите желаемую информацию в Проектирование внешнего вида с помощью панели управления . Или вы можете найти его в разделе Проектирование внешнего вида с помощью XML . Я думаю, что вы ищете две страницы макета.

Другой вариант - перейти к http://www.google.com/cse/manage/all, а затем использовать там панель управления для настройки своей поисковой системы.

3 голосов
/ 16 декабря 2011

Когда вы создаете код для своего Google CSE, один из вариантов просмотра и ощущения - это «Две страницы», что позволит вам выполнять поиск на одной странице и отображать результаты на другой.enter image description here

2 голосов
/ 30 августа 2016

Код V2 для пользовательского поиска (бесплатный) или поиска по сайту (платный) дает вам ряд возможностей для поиска и отображения результатов на той же странице или с собственной страницей результатов.

По умолчанию этоОткроет все ссылки на результаты в новой вкладке или окне.

У меня возникла проблема, когда мне нужно было открыть результаты поиска на той же вкладке / в окне.

Я настроил следующий код

<gcse:search></gcse:search>

к этому

<gcse:search linktarget="_self"></gcse:search>

Я полагаю, если по какой-то причине ваше поведение по умолчанию не открывается в новой вкладке / окне, и вам это нужно, то вы можете попробовать следующее

<gcse:search linktarget="_blank"></gcse:search>

Надеюсь, это поможет.

0 голосов
/ 21 марта 2014

Не очевидно из просмотра документации Google (знакомая история), но вы можете сделать это очень просто, используя код пользовательского поиска v2, выбрав опцию «Только результаты» в разделе «Внешний вид»:

Look and feel selection screen with 'Results only' thumbnail selected

Нажмите «Сохранить и получить код» и вставьте на страницу searchresults.htm.

Теперь вам просто нужно создать простое окно поиска, которое указывает на эту страницу, которое вы можете поместить в заголовок вашей страницы.

1010 *, например *

<form action="http://www.amberantiques.com/searchresults.htm">
<input type="search" name="q"/>
<input type="submit" value="Go"/>
</form>
0 голосов
/ 21 февраля 2013

Опираясь на код выше, вы можете использовать:

<gcse:search newWindow="true"></gcse:search>

Согласно документации Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...