首页 > 解决方案 > 我究竟做错了什么?使用 NationBuilder 实现自定义 Google 搜索

问题描述

我已按照有关如何使用 NationBuilder 实施自定义 Google 搜索的所有说明(https://nationbuilder.com/implementing_a_custom_google_search_using_nationbuilder?page=2

搜索栏出现在网站上,但没有出现搜索结果。(此处网站示例:https ://www.migraine.org.au/search )

我打算在此代码中进行自定义以实现结果吗?我添加了自定义搜索 ID,但我觉得我还必须更改其他内容:

<form method="get" action="/search">
  <div class="row">
    <div class="col-lg-6">
      <div class="input-group">
        <input name="q" type="search" placeholder="Enter keywords..." class="form-control" />
        <span class="input-group-btn">
          <input class="btn btn-primary" type="submit" value="SEARCH" />
        </span>
      </div>
    </div>
  </div>
</form>
<script type="text/javascript">
  (function() {
    function getUrlParameter(name) {
      name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
      var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
      var results = regex.exec(location.search);
      return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
    };
    document.getElementsByName("q").forEach(function(el){el.value = getUrlParameter("q")});
    var cx = '{% if custom_search_id and custom_search_id != "" %}{{ custom_search_id }}{% else %}008016235122236849965:29prjnksala{% endif %}';
    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>
<div class="row">
  <div class="gcse-searchresults-only" data-enableAutoComplete="true" data-safeSearch="active" data-as_sitesearch="{{ site.full_url | split:'//' | last | split:'/' | first }}" data-image_as_sitesearch="{{ site.full_url | split:'//' | last | split:'/' | first }}" data-enableImageSearch="false" data-disableWebSearch="false"></div>
</div>

标签: javascriptliquidimplementationgoogle-custom-searchlanguage-implementation

解决方案


看起来 cx id 正在以某种方式连接起来。浏览器向https://cse.google.com/cse.js?cx=02a15aadc5f939bbe008016235122236849965:29prjnksala发出请求,返回 404 错误

有两个不同的 cx id(02a15aadc5f939bbe 和 008016235122236849965:29prjnksala)混合在一起


推荐阅读