2010-02-03 134 views
2

我使用Google搜索API将一些搜索结果加载到我的页面中。我想为回调函数设置一个参数,说明搜索结果应该附加到哪个div。解密Google搜索API:如何引用传递给回调函数的参数?

这里的回调函数的定义,每个谷歌:(?对象,方法,opt_arguments)

.setSearchCompleteCallback

这里是我如何做它: searcher.setSearchCompleteCallback (document, function() { alert(opt_arguments[0].id); }, new Array(infodiv));

文档解释说:“应用程序可以选择使用opt_arguments传入上下文参数,然后传递给指定的方法。“

是的 - 但如何?我已经传入了上下文参数,但是如何在函数中引用它?我试着只是调用opt_arguments,但js错误清楚地表明它没有被定义。

该文档是here

谢谢!

+0

你可以张贴一些示例代码,这样我们就可以看到你如何试图做到这一点? – glomad 2010-02-03 21:32:32

回答

6

基本上,它表示以下内容。您可以绑定事件处理程序像这样:“搜索完成”

function searchComplete(message) { 
    alert(message); 
} 

function OnLoad() { 
    var searchControl = new google.search.SearchControl(); 
    var webSearch = new google.search.WebSearch(); 

    searchControl.addSearcher(webSearch); 
    searchControl.draw(document.getElementById("searchcontrol")); 
    searchControl.setSearchCompleteCallback(this, searchComplete, "Search Done!"); 

    searchControl.execute('Google') 
} 
google.setOnLoadCallback(OnLoad); 

示例代码上面会显示一条消息等结束了。

+0

工作很好,谢谢。 – Summer 2010-02-03 21:41:10

+0

问候!我在这里发布了一个问题http://stackoverflow.com/questions/8828069/google-custom-search-getting-access-to-results-对象,让我生气,即使你回答没有直接的答案,它给了我足够的线索。如果你关心,发布一个链接到这个问题/答案,我会接受它。 – vector 2012-01-12 16:28:36

1

如果您传递上下文参数,则您的回调方法应该将该上下文参数作为参数。

2

它应该是这个样子:

var myCallbackObject = 
{ 
    myCallbackFunction: function(args) 
    { 
     // args will be whatever someArgs is set to below 
     alert(args); // Array("hey","hello") 
    } 
} 

var someArgs = ["hey", "hello"]; 
// (... set up mySearchObject as the google Search object here) 
mySearchObject.setSearchCompleteCallback(myCallbackObject, myCallbackFunction, someArgs); 
相关问题