【发布时间】:2026-01-01 19:00:01
【问题描述】:
您好,我正在尝试为 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 是全球性的,我已经这样做了,但它仍然不起作用。
有什么帮助吗?
【问题讨论】:
标签: jquery firefox-addon cross-domain jsonp