gpt4 book ai didi

javascript - 如何将 JQuery 实例方法作为 Google API 回调发送?

转载 作者:行者123 更新时间:2023-11-30 18:38:42 27 4
gpt4 key购买 nike

有没有人以前想出如何发送(JQuery 插件)对象范围的方法作为 Google API 回调?例如。用于 PageSpeed API。

所有示例都显示您发送全局函数的名称,但我想以某种方式发送特定实例方法(或重新查找 JQuery 对象的方法)。

这是基于their sample :

 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 的调用。

例如我试过了 - 但这会产生来自 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 的,但可能是围绕它为什么拒绝全局函数名称以外的任何内容。

最佳答案

jQuery 对 JSONP 有很好的支持。您应该使用它而不是自己注入(inject)脚本元素。有了它,您甚至不需要关心回调,响应将自动路由到您的 success 回调。

jQuery.fn.MyGooglePlugin = function() {
$.ajax('<url>', {
dataType: 'jsonp',
data: {
key: 'api-key'
}
success: function(response) {
console.log(response);
}
});
};

关于javascript - 如何将 JQuery 实例方法作为 Google API 回调发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7479359/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com