一次在页面上有多个GCSE。

时间:2015-10-12 17:59:28

标签: google-custom-search

使用新的GCSE代码:

                    // google custom search engine for the whole site
                (function() {
                    var cx = '*****************';
                    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 + '&gname=sitesearch';
                    var s = document.getElementsByTagName('script')[0];
                    s.parentNode.insertBefore(gcse, s);
                })();

和像这样的元素:

            <gcse:searchbox gname="sitesearch"></gcse:searchbox>
            <gcse:searchresults gname="sitesearch"></gcse:searchresults>

如何在页面上包含第二个gcse标签并为其指定一个新的CX: 我已经尝试将每个gname传递给url,如下所示:

'//cse.google.com/cse.js?cx=' + cx + '&gname=sitesearch';

但无济于事...... 我已经阅读了它所说的文件;

  

(可选)CSE元素对象的名称。名称用于按名称检索关联的组件,或将搜索框组件与searchresults组件配对。如果未提供,自定义搜索将根据网页上组件的顺序自动生成gname。例如,第一个未命名的搜索框只有gname&#34; searchbox-only0&#34;第二个是gname&#34; seachbox-only1&#34;,依此类推。请注意,两列布局中组件的自动生成的gname将是两列。以下示例使用gname storesearch将searchbox组件与searchresults组件链接:   这样可以很容易地将搜索框分配给搜索结果我似乎无法将cx代码附加到实际标记。

我读过这个: Multiple Google CSE (Custom Search Engine) Boxes on Same Page 但这指的是旧版GCSE 这个接受的答案是使用iframe: How to have multiple Google Custom Search field on the same page

使用iframe似乎很匆匆而且不是正确的方法... ?

1 个答案:

答案 0 :(得分:1)

使用自定义搜索元素v1,可以相对简单地完成:

<script src='//www.google.com/jsapi' type='text/javascript'></script>
<script type='text/javascript'>
google.load('search', '1', {style: google.loader.themes.V2_DEFAULT});
google.setOnLoadCallback(function () {
  new google.search.CustomSearchControl('CSE_USER_ID:CDE_ID1').draw('cse');
  new google.search.CustomSearchControl('CSE_USER_ID:CDE_ID2').draw('cse2');
});
</script>

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

<div id='cse2' style="width: 100%;">Loading</div>

演示:同一页面上的多个Google CSE
http://box.galeksic.com/cse.multiple-on-same-page/

JavaScript API参考(v1)
https://developers.google.com/custom-search/docs/js/cselement-reference

我已经尝试过v2,但并不是很成功。