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

时间:2013-09-10 12:59:00

标签: javascript google-custom-search

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

有谁知道为什么?

一个页面只有一个搜索框,其中包含代码:

<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);

搜索仍无效,无法看到结果

拜托,谁可以帮助我?

2 个答案:

答案 0 :(得分:0)

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

这意味着引擎一般都在工作。

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

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

答案 1 :(得分:0)

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

第二个搜索引擎的代码略有不同,此行将有不同的搜索引擎ID:

var cx = '017015442779235202717:g8u07nzbkmi';

您可以告诉第一个搜索引擎是受限制的,而不是搜索所有互联网,因为 office 会返回结果,但其他条款却没有,例如<​​em> chair 。