Javascript 如何在Google Site Search/自定义搜索的v2中指定为_sitesearch?

Javascript 如何在Google Site Search/自定义搜索的v2中指定为_sitesearch?,javascript,google-custom-search,Javascript,Google Custom Search,我有一个谷歌自定义搜索(将来将是一个网站搜索),我想使用谷歌提供的代码片段: <script> (function() { var cx = '...'; var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true; gcse.src = (document.location.protocol == 'https:' ? 'htt

我有一个谷歌自定义搜索(将来将是一个网站搜索),我想使用谷歌提供的代码片段:

<script>
  (function() {
    var cx = '...';
    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>

(功能(){
var cx='…';
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);
})();
我需要将其限制为某些URL。使用xml api时,可以使用参数as_sitesearch指定此筛选器。。有没有办法用上面的代码做到这一点

现在,我可以在加载搜索之前访问google.search.cse对象。。但我还是不知道参数:

<script>


var myCallback = function() {
  if (document.readyState == 'complete') {
    // Document is ready when CSE element is initialized.
    // Render an element with both search box and search results in div with id 'test'.
    google.search.cse.element.render(
        {
          div: "test",
          tag: 'search'
         });
  } else {
    // Document is not ready yet, when CSE element is initialized.
    google.setOnLoadCallback(function() {
       // Render an element with both search box and search results in div with id 'test'.
        google.search.cse.element.render(
            {
              div: "test",
              tag: 'search'
            });
    }, true);
  }
};

// Insert it before the CSE code snippet so that cse.js can take the script
// parameters, like parsetags, callbacks.
window.__gcse = {
  parsetags: 'explicit',
  callback: myCallback
};


  (function() {

    var cx = '007407192365638902354:eyxoavi7oa0';
    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>



<style>
.gsc-control-cse * {
box-sizing:content-box;
}
</style>

var myCallback=函数(){
如果(document.readyState=='complete'){
//初始化CSE元素时,文档已准备就绪。
//在id为“test”的div中呈现包含搜索框和搜索结果的元素。
google.search.cse.element.render(
{
分区:“测试”,
标签:“搜索”
});
}否则{
//初始化CSE元素时,文档尚未准备就绪。
setOnLoadCallback(函数(){
//在id为“test”的div中呈现包含搜索框和搜索结果的元素。
google.search.cse.element.render(
{
分区:“测试”,
标签:“搜索”
});
},对);
}
};
//将其插入CSE代码段之前,以便CSE.js可以获取脚本
//参数,如parsetags、回调。
窗口。\uuu gcse={
parsetags:'显式',
回调:myCallback
};
(功能(){
变量cx='007407192365638902354:eyxoavi7oa0';
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);
})();
.gsc控制cse*{
框大小:内容框;
}
是的,你可以

在搜索表单中使用隐藏字段:

<input type="hidden" name="as_sitesearch" value="your_url_here/directory">

是的,你可以

在搜索表单中使用隐藏字段:

<input type="hidden" name="as_sitesearch" value="your_url_here/directory">

要限制某些URL:

    <gcse:searchbox-only as_sitesearch="mydomain.com" resultsUrl="http://mydomain.com/search-results/" enableAutoComplete="false"></gcse:searchbox-only>


请确保将mydomain.com替换为您要限制的相应域。

要限制某些URL:

    <gcse:searchbox-only as_sitesearch="mydomain.com" resultsUrl="http://mydomain.com/search-results/" enableAutoComplete="false"></gcse:searchbox-only>


请确保将mydomain.com替换为您想要限制的适当域。

我也有同样的问题。在Google Site search版本2中,我能够将搜索限制在特定文件夹的唯一方法是将其硬编码到元素中:

<gcse:search as_sitesearch="www.mydomain.com/site1"></gcse:search>


如果有一种方法可以通过JavaScript添加as_sitesearch,就像版本1一样,那就太好了。

我也有同样的问题。在Google Site search版本2中,我能够将搜索限制在特定文件夹的唯一方法是将其硬编码到元素中:

<gcse:search as_sitesearch="www.mydomain.com/site1"></gcse:search>


如果有一种方法可以通过JavaScript添加as_sitesearch,就像版本1一样,那就太好了。

我没有真正的搜索表单。。我该把它放在哪里?搜索表单由googlejavascript呈现。它将替换-tag抱歉,您刚刚编辑了代码。如果您查看API文档,您可以使用这些选项来定义变量,对吗?是的,这只是一个附加选项。。。我想我只是还没有看到它(也许睡一会儿会有帮助;)-对于您链接的文档,我需要自己调用构造函数。。但是有了上面的代码,我已经有了一个“google.search.cse.element”=>我需要从头开始吗?(我从google复制的代码似乎总是有一个初始化的对象)您可以向搜索渲染添加属性。render div:“test”,属性:{},标记:'search'});但是,我找不到与as_sitesearch属性等效的属性。请检查我没有真正的搜索表单。。我该把它放在哪里?搜索表单由googlejavascript呈现。它将替换-tag抱歉,您刚刚编辑了代码。如果您查看API文档,您可以使用这些选项来定义变量,对吗?是的,这只是一个附加选项。。。我想我只是还没有看到它(也许睡一会儿会有帮助;)-对于您链接的文档,我需要自己调用构造函数。。但是有了上面的代码,我已经有了一个“google.search.cse.element”=>我需要从头开始吗?(我从google复制的代码似乎总是有一个初始化的对象)您可以向搜索渲染添加属性。render div:“test”,属性:{},标记:'search'});但是,我找不到as_sitesearch属性等效项。请检查