Расшифровка API поиска Google: как обратиться к аргументу, переданному в функцию обратного вызова? - PullRequest
2 голосов
/ 04 февраля 2010

Я использую Google Search API для загрузки результатов поиска на мою страницу. Я хотел бы установить аргумент для функции обратного вызова, который говорит, к какому div должны присоединяться результаты поиска.

Вот определение функции обратного вызова для Google:

.setSearchCompleteCallback (объект, метод, opt_arguments?)

Вот как я это делаю: searcher.setSearchCompleteCallback (document, function() { alert(opt_arguments[0].id); }, new Array(infodiv) );

Документация объясняет: «Приложения могут дополнительно передавать аргумент контекста, используя opt_arguments, который затем передается указанному методу.»

Да, но как? Я передал контекстный аргумент, но как мне обратиться к нему внутри функции? Я пытался просто вызвать opt_arguments, но ошибки js ясно показывают, что он не определен.

Документация здесь .

Спасибо !!

Ответы [ 3 ]

6 голосов
/ 04 февраля 2010

В основном это означает следующее. Вы можете привязать обработчик событий так:

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

В приведенном выше примере кода появится сообщение «Поиск завершен!» когда закончите.

2 голосов
/ 04 февраля 2010

Это должно выглядеть примерно так:

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);
1 голос
/ 04 февраля 2010

Если вы передаете аргумент контекста, ваш метод обратного вызова должен принять этот аргумент контекста в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...