以前有没有人想出如何将(JQuery 插件)对象范围的方法作为 Google API 回调发送?例如对于 PageSpeed API。
所有示例都向您展示了发送全局函数的名称,但我想以某种方式发送特定的实例方法(或重新查找 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);
我正在我的插件的 init 方法中设置对 Google 的调用。
例如,我试过这个——但这会从 Google API 产生 400 Bad Request。
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);}
提前感谢您的任何见解!我想该解决方案可能不是特定于 Google API 的,但可能是它拒绝除全局函数名称之外的任何东西的原因。