从文本链接调用谷歌自定义搜索叠加层

Calling Google Custom Search overlay from text link

本文关键字:搜索 叠加 自定义 谷歌 文本 链接 调用      更新时间:2023-09-26

我正在使用Google自定义搜索的新风格,它将您的搜索结果覆盖在当前页面上。

下面的代码创建一个调用覆盖的搜索框。我想知道是否有无论如何可以创建一个文本链接,该链接也可以启动叠加的结果,因为我们的一些文章有一行"您可以随时在我们的网站上搜索有关 [person] 的更多参考资料"。较旧的两页 CSE 精神允许我们使用/search.shtml?q=person 调用结果页面

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

我创建了一个这样的文本链接:/currentpage?cx=myCSEidnumber&amp;q=$mysearchterms

单击该链接不会创建结果叠加层。如果我复制该链接并在浏览器中重新输入它,它确实会弹出覆盖层。

我已经搜索了谷歌CSE网站和论坛,但似乎找不到任何东西。感谢您的任何见解。

你的网址中不需要 cx 参数,只需要 q 参数。但是,您确实需要链接目标页面中存在的元素才能显示叠加层。该元素将同时呈现覆盖和搜索框,但您可以使用 css 隐藏搜索框,例如:

.gsc-search-box {
    display:none;
}

下面是一个示例(虽然 jsfiddle 不会为你渲染 css,但你需要单独将其添加到你的页面上):

http://jsfiddle.net/RDHS4/3/

应使用此/?q=$mysearchterms设置 HREF

示例:要在索引页或任何其他页面上显示结果:

href="http://www.your-web-site.com/?q=$mysearchterms"
href="http://www.your-web-site.com/search/?q=$mysearchterms"
href="http://www.your-web-site.com/result.php?q=$mysearchterms"

然后,您可以继续使用css隐藏输入字段。

.gsc-search-box { display:none; }