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