Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提交时谷歌自定义搜索_Javascript_Search - Fatal编程技术网

Javascript 提交时谷歌自定义搜索

Javascript 提交时谷歌自定义搜索,javascript,search,Javascript,Search,我想自定义我的搜索表单。我正在使用谷歌搜索服务,并将其链接到我的域名等 我在控制面板中选择了两列布局,但是,我想在表单的提交部分做一些事情 因此,我尝试将jQuery中的actionlistener放入表单中,但是不起作用 然后我想谷歌肯定会为此提供一些东西。是的,他们有。它被称为: setOnSubmitCallback() 不幸的是我不明白 到目前为止,我已经: google.load('search', '1', {language : 'en', style : google.loa

我想自定义我的搜索表单。我正在使用谷歌搜索服务,并将其链接到我的域名等

我在控制面板中选择了两列布局,但是,我想在表单的提交部分做一些事情

因此,我尝试将jQuery中的actionlistener放入表单中,但是不起作用

然后我想谷歌肯定会为此提供一些东西。是的,他们有。它被称为:

setOnSubmitCallback()

不幸的是我不明白

到目前为止,我已经:

google.load('search', '1', {language : 'en', style : google.loader.themes.MINIMALIST});

                    function initialize()
                    {
                        var searchControl = new google.search.CustomSearchControl('017998360718714977594:j6sbtr-d6x8');
                        searchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);

                        var options = new google.search.DrawOptions();
                        options.setSearchFormRoot('cse-search-form');

                        searchControl.draw('cse', options);
                    }

                    google.setOnLoadCallback(initialize);
所以我有两个div:
#cse搜索表单
查看表单,并
#cse
查看结果

#cse
位于另一个div#searchResults中,它是隐藏的,下面是:

我想在jQuery UI的对话框中打开#searchResults

$("#searchResults").dialog( { minWidth: 750, minHeight: 750 } );
这将导致:

.setOnSubmitCallback(function() {
    $("#searchResults").dialog( { minWidth: 750, minHeight: 750 } );
} );
所以我现在的问题是,我必须把setOnSubmitCallback放在哪里,放在什么地方

我不能把它放在google.search.search或CustomSearchControl上,正如文档中所述。我不能在onLoadCallback中调用它,所以对我来说很奇怪。我想不出怎么做

我希望有人对谷歌搜索有更多的经验,可以帮助我找到解决方案


非常感谢您。

注意:下面的代码使用的是Google不推荐使用的代码。改用这个:


Hello World-Google Web搜索API示例
//
加载

    OK-这将引导我找到以下代码:我可以搜索,并在提交页面上显示我的对话框。但是,它不会向我展示结果。好的,我创建了一个完全有效的示例。这有点复杂,谢谢你帮我解决了这个问题。哇,米利米,这真是太棒了!我没想到会有人写那封信。代码很好,我理解。但是-因为总是有一个但是-它只是一个谷歌搜索-不是在我的网站上搜索。它没有与谷歌搜索帐户连接。这是我的主要问题。我现在要睡觉了,但我今天晚些时候会看一看,也许可以编辑你的脚本,将它连接到我的谷歌帐户,它使用我的网站搜索引擎。再次感谢!我非常感谢。我想答案就是增加一个搜索者。所以现在它通过添加
    new google.search.WebSearch()
    new google.search.VideoSearch()
    searchControl.addSearcher来搜索视频和网络。所以,要在你的网站上进行搜索,我认为只要在引用时添加你的?key=your-key,然后添加正确的搜索者(不知道是什么)。嘿,顺便说一句,我很笨,但我刚刚意识到这是不赞成的。您应该使用:searchControl.addSearcher()
    var searchControl=new google.search.CustomSearchControl('017998360718714977594:j6sbtr-d6x8');//添加一组搜索者var webSearch=new google.search.webSearch();webSearch.setSiteRestriction(“http://www.wimbledon-it.co.uk");             searchControl.addSearcher(webSearch)现在应该可以了!
    
    <!DOCTYPE HTML>
    <html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
        <title>Hello World - Google  Web Search API Sample</title>
        <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/themes/ui-lightness/jquery-ui.css" type="text/css" media="all" />
        <script src="https://www.google.com/jsapi" type="text/javascript"></script>
        <script language="Javascript" type="text/javascript">
        //<![CDATA[
        google.load('search', '1');
        google.load("jquery", "1.5.2");
        google.load("jqueryui", "1.8.12");
    
        function OnLoad() {
    
            var searchComplete = function(searchControl, searcher){
                $('#searchResults').dialog({modal: true, width: 700, height: 400, position: [50, 50]});
                for (result in searcher.results) {
                    var content = searcher.results[result].content;
                    var title = searcher.results[result].title;
                    var url = searcher.results[result].url;
                    $('#searchResults ul')
                        .append($('<li></li>')
                            .append($('<a/>').attr('href', url).text(title))
                            .append($('<p/>').text(content)));
                }
            };
    
            // called on form submit
            newSearch = function(form) {
              if (form.input.value) {
                // Create a search control
                var searchControl = new google.search.SearchControl();
    
                // Add in a set of searchers
                searchControl.addSearcher(new google.search.WebSearch());
                searchControl.addSearcher(new google.search.VideoSearch());
    
                // tell the searchControl to draw itself (without this, the searchComplete won't get called - I'm not sure why)
                searchControl.draw();
    
                searchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF);           
                searchControl.setSearchCompleteCallback(this, searchComplete);
                searchControl.execute(form.input.value);
              }
              return false;
            }
    
            // create a search form without a clear button
            // bind form submission to my custom code
            var container = document.getElementById("searchFormContainer");
            this.searchForm = new google.search.SearchForm(false, container);
            this.searchForm.setOnSubmitCallback(this, newSearch);
        }
        google.setOnLoadCallback(OnLoad);
    
        //]]>
        </script>
      </head>
      <body>
        <div id="searchFormContainer">Loading</div>
        <div id="searchResults" title="Search Results">
            <ul></ul>
        </div>
      </body>
    </html>