我正在使用 Firefox 插件生成器。运行此代码时出现“回调未定义”错误
function callback(data) {
window.alert(data.status);
}
$.ajax({
url: "http://apps.compete.com/sites/google.com/trended/rank/?apikey=210e634a0b3af972daa908a447c735c1&start_date=201112&end_date=201112&jsonp=?",
dataType: "jsonp",
jsonp: "jsonp",
jsonpCallback: "callback"
});
这是api文档:https://www.compete.com/developer/documentation/ https://www.compete.com/developer/documentation/
我假设您是从内容脚本运行它。您必须考虑到内容脚本并不真正在与网页脚本相同的上下文中运行 - 网页无法看到内容脚本定义的函数,反之亦然(该机制的详细描述 https://developer.mozilla.org/en/XPCNativeWrapper)。 JSONP 的工作原理是插入一个<script>
标记到网页中。该脚本将在网页的上下文中运行 - 并且它不会看到您在内容脚本中定义的回调函数。
定义callback
在窗口上下文中执行以下操作:
unsafeWindow.callback = function(data)
{
window.alert(data.status);
};
但是,您应该采取关于警告unsafeWindow在文档中 https://addons.mozilla.org/en-US/developers/docs/sdk/1.4/dev-guide/addon-development/content-scripts/access.html认真对待并尽可能避免。使用request package https://addons.mozilla.org/en-US/developers/docs/sdk/1.4/packages/addon-kit/docs/request.html在您的扩展中加载数据:
require("request").Request({
url: "http://apps.compete.com/sites/google.com/trended/rank/?apikey=210e634a0b3af972daa908a447c735c1&start_date=201112&end_date=201112",
onComplete: function(response)
{
console.log(response.json);
}
});
然后您可以发送response.json
通过以下方式添加到您的内容脚本平常的消息传递 https://addons.mozilla.org/en-US/developers/docs/sdk/1.4/dev-guide/addon-development/content-scripts/using-postmessage.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)