Кто-нибудь ранее выяснил, как отправить объектный метод (плагин JQuery) в качестве обратного вызова API Google?Например, для API PageSpeed.
Во всех примерах показано, что вы отправляете имя глобальной функции, но я хочу каким-то образом отправить конкретный метод экземпляра (или способ пересмотреть объект JQuery).
Это основано на их выборке :
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
var query = [
'url=' + url,
'callback=runCallbacks',
'key=' + settings.api_key,
].join('&');
s.src = API_URL + query;
document.head.insertBefore(s, null);
Так что я хочу добиться, это что-то вроде этого вызова:
$('div.jq-google-plugin).MyGooglePlugin('callback',result);
Янастроить вызов в Google из метода init моего плагина.
например, я пробовал это - но это выдает 400 неверных запросов от API Google.
var query = [
'url=' + url,
'callback='+ encodeURI('function(result){$(\'div.jq-google-plugin\').MyGooglePlugin(\'callback\',result);}’,
'key=' + settings.api_key,
].join('&');
Что я на самом деле не делаюхочу сделать, это создать какой-то искаженный глобал, чтобы перехватывать ответы для каждого экземпляра плагина, но я думаю, что это единственный способ?(Это работает, кстати.)
var query = [
'url=' + url,
'callback=myUniqueGlobalCallback',
'key=' + settings.api_key,
].join('&');
myUniqueGlobalCallback = function(result){$('div.jq-google-plugin).MyGooglePlugin('callback',result);}
Заранее спасибо за любые идеи!Я полагаю, что решение может не зависеть от API Google, но может быть связано с тем, почему оно отклоняет любую вещь, кроме глобального имени функции.