2015-08-21 2 views
0

Я добавил Google Custom Search Engine на свой сайт с помощью консоли разработчика Google (я сам не кодирую API). Я использовал вариант с двумя страницами и добился успеха в поиске и просмотре результатов поиска на второй странице. Однако, когда я нажимаю на один из результатов поиска, а затем хочу вернуться назад на страницу результатов поиска, он переходит на корневую страницу моего сайта. Я придумал квази-решение: когда я попытаюсь вернуться на страницу результатов поиска, URL-адрес страницы результатов поиска будет siteroot/# gsc.tab = 0 & gsc.q = happy% 20birthday & gsc.sort = дата; Если я вручную отредактирую это и добавлю имя страницы перед запросом, это выглядит так: siteroot/searchresults.cfm # gsc.tab = 0 & gsc.q = happy% 20birthday & gsc.sort = date, то результаты будут снова загрузите. Поэтому я добавил несколько javascript, чтобы вручную добавить searchresults.cfm в строку запроса onload и работает (как правило). Однако, если пользователь переходит на вторую или третью страницу результатов поиска или переключает тип сортировки, он перестает работать. Я огляделся по сторонам на разных сайтах, и ни у кого больше нет такой проблемы; Я просмотрел многие сайты о том, как добавить поисковую систему, и все они дают инструкции, которые я выполнил, чтобы добавить это.Google CSE Two-Page Вернуться к результатам поиска?

Любые советы? Я включил код ниже:

<div id = "searchOuter"><script> 
    (function() { 
var cx = 'xxxxxxxxxxxxxxxxx:xxxxxxxxxx'; 
var gcse = document.createElement('script'); 
gcse.type = 'text/javascript'; 
gcse.async = true; 
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + 
    '//cse.google.com/cse.js?cx=' + cx; 
var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(gcse, s); })();</script> 
<gcse:searchbox-only enablehistory = "true" resultsURL="searchResults.cfm"  enableAutoComplete="true" enableOrderBy="true"></gcse:searchbox-only></div> 

А на странице SearchResults.cfm:

<div> <script> 
    (function() { 
var cx = '009457464603814366938:w0ppnk90w6m'; 
var gcse = document.createElement('script'); 
gcse.type = 'text/javascript'; 
gcse.async = true; 
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + 
    '//cse.google.com/cse.js?cx=' + cx; 
var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(gcse, s); })();</script> 
<gcse:search enablehistory = "true" enableAutoComplete="true" enableOrderBy="true"></gcse:search></div> 

ответ

0

Я нашел ответ на свой вопрос. Оказывается, что в функции CSE «включить поиск результатов поиска» была ошибка. Я отключил это, войдя в консоль -> Функции поиска -> Дополнительно -> Просмотр истории результатов и выбрав «Отключить». Затем я вставил следующее в код окна поиска на своем сайте: enablehistory = "false"

После этого в запросах остановились gsc.tab = 0 и т. Д., Добавленные к ним, и возврат к странице результатов поиска работал должным образом, но ссылки на странице результатов поиска начали открываться на новых вкладках. Поэтому я вставил следующее, чтобы они открывались на той же вкладке: linktarget="_self". Мой окончательный код окна поиска на моем сайте гласит: <gcse:search enableAutoComplete="true" enablehistory = "false" enableOrderBy = "true" linktarget="_self"></gcse:search>

Надеюсь, это полезно для других. Удачи!

Смежные вопросы