Javascript 如何在Thunderbird扩展的其他模块中使用原始jQuery库

Javascript 如何在Thunderbird扩展的其他模块中使用原始jQuery库,javascript,jquery,thunderbird,thunderbird-addon,Javascript,Jquery,Thunderbird,Thunderbird Addon,我试图在javascript模块jQuery.jsm中添加jQuery库。 我在其他模块中使用jquery.jsm。jQuery需要一个窗口对象,所以我不能使用原始jQuery代码。我需要定义一个窗口对象 jquery.jsm: const导出的_符号=['jQuery']; var xjQuery=null; var窗口=null; var位置=空; var wm=Components.classes[“@mozilla.org/appshell/windowmediator;1”].get

我试图在javascript模块jQuery.jsm中添加jQuery库。 我在其他模块中使用jquery.jsm。jQuery需要一个窗口对象,所以我不能使用原始jQuery代码。我需要定义一个窗口对象

jquery.jsm:

const导出的_符号=['jQuery'];
var xjQuery=null;
var窗口=null;
var位置=空;
var wm=Components.classes[“@mozilla.org/appshell/windowmediator;1”].getService(Components.interfaces.nsIWindowMediator);
var枚举器=wm.getEnumerator(null);
if(枚举数.hasMoreElements()){
var win=enumerator.getNext();
窗口=赢;
位置=win.location;
}
我的解决方案:

jquery.jsm

“严格使用”;
/**
*用于加载jQuery库的包装器模块
*/
const导出的_符号=['jQuery'];
//窗口对象
让作用域={
窗口:空,
文件:空
};
//范围对象(jQuery所需)
设wm=Components.classes[“@mozilla.org/appshell/windowmediator;1”].getService(Components.interfaces.nsIWindowMediator);
让枚举数=wm.getEnumerator(null);
if(枚举数.hasMoreElements()){
让win=enumerator.getNext();
scope.window=win;
scope.document=win.document;
}
//添加jQuery原始库
让url=”chrome://esign/content/script/jquery-3.3.1.min.js";
let loader=Components.classes[“@mozilla.org/moz/jssubscript loader;1”]
.getService(组件.接口.mozijsubscriptLoader);
loader.loadSubScript(url,作用域);

让jQuery=scope.window.jQuery+1,是否与新版本相关?我正试着自己写一个add-n,使用旧文档有点困难