您好我正在尝试为Firefox5创建扩展,其中扩展代码在页面加载开始时注入两个脚本。
var data = require("self").data;
var pageMod = require("page-mod");
pageMod.PageMod({
include: ['*'],
contentScriptWhen: "start",
contentScriptFile:
[data.url("jquery.min.js"), data.url("js_include.js")],
});
脚本js_include.js正在使用全局回调函数'onJSONPLoad'进行跨域JQuery jsonp调用,其代码如下:
window.onJSONPLoad = function(data) {
//do something here...
}
jQuery(function(){
jQuery.ajax({
url: 'http://localhost:8000/getvos/',
type: 'GET',
data: 'url='+window.location.href,
dataType: 'jsonp',
jsonp: 'jsonpCallback',
jsonpCallback: 'onJSONPLoad'
});
});
如果我在页面中执行此操作,则此功能可用,但在我尝试在加载项中执行时则不行。 Firebug显示调用已经完成,响应得到了,我也可以在控制台中看到响应。但是,onJSONPLoad函数永远不会执行,我得到的只是“onJSONPLoad未定义”。
我在SO上看过其他问题/答案,但是他们要求onJSONPLoad是全球性的,我已经做过了,但它仍然不起作用。
任何帮助?
答案 0 :(得分:0)
试试这个:jsonpCallback: 'window.onJSONPLoad'