开发者

Deciphering the Google Search API: how to refer to an argument passed into callback function?

开发者 https://www.devze.com 2022-12-18 20:33 出处:网络
I\'m using the Google Search API to load some Search results into my page.I\'d like to set an argument to the callback function that says which div the search results should attach themselves to.

I'm using the Google Search API to load some Search results into my page. I'd like to set an argument to the callback function that says which div the search results should attach themselves to.

Here's the callback function definition, per Google:

.setSearchCompleteCallback(object, method, opt_arguments?)

Here's how I'm doing it: searcher.setSearchCompleteCallback (document, function() { alert(opt_arguments[0].id); }, new Array(infodiv) );

The documentation explains: "Applications may optionally pass in a context argument using opt_arguments which is then passed to the specified method."

Yes -- but how? I've passed in the context argument, but how do I refer to it within the function? I've tried just calling opt_arguments, but js errors clearly show that it's not defined.

The documentation is here.

开发者_如何学运维

Thank you!!


Basically, it means the following. You can bind the event handler like such:

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);

The example code above will display a message saying "Search Done!" when finished.


It should look something like this:

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);


If you pass a context argument, your callback method should take that context argument as a parameter.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号