我已经使用Google开发人员的控制台向我的网站添加了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,并且(通常)工作。但是,如果用户转到搜索结果的第2或第3页或切换排序类型,它将停止工作。 我环顾了不同的网站,似乎没有其他人有这个问题;我查看了很多关于如何添加搜索引擎的网站,他们都给出了我添加的说明。
有什么建议吗?我已经包含了以下代码:
<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 :(得分:0)
我找到了自己问题的答案。事实证明,CSE“启用搜索结果浏览历史记录”功能中存在错误。我通过进入控制台关闭了这个 - &gt;搜索功能 - &gt;高级 - &gt;结果浏览历史记录并选择“禁用”。然后,我将以下内容插入到我网站上的搜索框代码中:enablehistory = "false"
之后,停止的查询附加了gsc.tab = 0等,并且返回搜索结果页面工作正常,但搜索结果页面上的链接开始在新选项卡中打开。所以我插入以下内容以使它们在同一个标签中打开:
linktarget="_self"
。我网站上的最终搜索框代码为:<gcse:search enableAutoComplete="true" enablehistory = "false" enableOrderBy = "true" linktarget="_self"></gcse:search>
希望这对其他人有帮助。祝你好运!