我已使用下一代码在firefox 15中的MultiWindows应用程序中创建MyGlobalObject。
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
Components.utils.import("resource://gre/modules/MyGlobalObject.jsm");
我的文件MyGlobalObject.jsm非常简单:
var EXPORTED_SYMBOLS = [ "MyGlobalObject" ];
if ("undefined" == typeof(MyGlobalObject)) {
var MyGlobalObject = {};
MyGlobalObject[0]=1;
}
由于firefox 17+此代码无法运行。 我已经使用下一个main.js创建了附加组件:
exports.main = function() {
var { Cu } = require("chrome");
Cu.import("resource://gre/modules/MyGlobalObject.jsm");
};
然而,我无法在我的应用程序内部的Javascript代码中访问MyGlobalObject。 我对firefox 17+的误解是什么?
答案 0 :(得分:0)
使用附加SDK创建加载项时,Cu.import()
无法正确识别程序包的范围。这意味着您必须assign the exported symbols explicitly:
var {Cu} = require("chrome");
var {MyGlobalObject} = Cu.import("resource://gre/modules/MyGlobalObject.jsm", null);