自定义谷歌搜索不会返回任何结果

问题描述 投票:2回答:2

我有自定义谷歌搜索的问题。我从自定义谷歌搜索引擎复制代码并将其粘贴到我的项目中。对于一个域它工作并返回结果但是对于另一个子域它不起作用并且不返回任何结果

有谁知道为什么?

一个页面只有一个带代码的搜索框:

<div  id="cse-search-form"  dir="<%= MyBase.UserPreferences.DisplayDir%>" style="width:500px;"></div>
                           <script>
                               (function () {
                                   var cx = '017015442779235202717:g8u07nzbkmi';
                                   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:searchbox-only resultsUrl="SearchResults.aspx"></gcse:searchbox-only>

结果显示在另一个页面上,代码如下:

<div>
    <script>
        (function () {
            var cx = '017015442779235202717:g8u07nzbkmi';
            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:searchresults-only></gcse:searchresults-only>

此外,我尝试使用以下代码将搜索框和结果放在同一页面上:

 <div>Compact Layout Demo</div>
 <div id="cse-search-form" style="width: 500px;">Loading</div>

<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
   google.load('search', '1', { language: 'en' });
   google.setOnLoadCallback(function () {
   var customSearchControl = new google.search.CustomSearchControl   ('017015442779235202717:g8u07nzbkmi');
    customSearchControl.setResultSetSize(google.search.Search.SMALL_CSE_RESULTSET);
    customSearchControl.draw('cse-search-form');

    // var options = new google.search.DrawOptions();
    // options.enableSearchboxOnly("http://www.tiemponeto.com/All/searchresults3.asp");
    // customSearchControl.draw('cse-search-form', options)
}, true);

搜索仍然无法正常工作,也看不到结果

拜托,谁可以帮帮我?

javascript google-custom-search
2个回答
0
投票

搜索引擎的公共网址会带来结果,例如:对于查询“办公室”:https://www.google.com/cse/publicurl?cx=017015442779235202717:g8u07nzbkmi

这意味着发动机一般都在工作。

首先,检查CSE控制面板的“外观”选项卡。您正尝试单独显示搜索框和搜索结果,因此您需要选择“两页”选项(一个页面包含搜索框,第二个包含结果)并保存新配置。

其次,确保在将用户重定向到结果页面时(例如?q = office),您的SearchResults.aspx脚本会附加“q =”参数。该页面上的元素从URL中读取此参数,并显示包含的查询(“office”)的结果。


0
投票

您要搜索的域/域名称在自定义搜索引擎选项中设置。您需要创建第二个自定义搜索引擎,转到设置并在那里设置域名,在“要搜索的站点”标题下。然后,您将代码用作子域的第二个搜索引擎。

第二个搜索引擎的代码会略有不同,这一行会有不同的搜索引擎ID:

var cx = '017015442779235202717:g8u07nzbkmi';

您可以告诉第一个搜索引擎是受限制的,而不是搜索所有互联网,因为办公室返回结果但其他条款没有,例如主席。

© www.soinside.com 2019 - 2024. All rights reserved.