我正在将Google Chrome的扩展程序移植到Firefox的Addon SDK(v1.9)中。由于它在后台页面上使用jQuery(Firefox上的main.js),我想在Firefox版本上使用该库。但是,由于窗口对象无法从插件代码本身访问(并且jQuery广泛基于此),我想知道是否有更好的方法从插件代码实现jQuery库。也许有一种方法可以使用“require('jquery')”将.jQuery作为模块导入。
为了澄清,我知道如何在内容脚本上实现jQuery。我想要做的是在插件代码本身上使用jQuery,例如“main.js”(或者你给背景“main”模块的任何名称)。
答案 0 :(得分:2)
结论是不可能(或非常难)包含。
然而,如上所述,在大多数情况下它是毫无意义的(因为我们无法从后台页面访问窗口对象)。
答案 1 :(得分:1)
我还将Chrome扩展程序移植到Firefox,并设法提出:
var {Cc, Ci} = require("chrome");
_window = Cc["@mozilla.org/appshell/appShellService;1"]
.getService(Ci.nsIAppShellService).hiddenDOMWindow;
$ = require('jquery')(_window);
还有一些细节here。
现在jQuery在非DOM上下文中有很多用途,特别是Deferreds和ajax的东西,以及像extend这样的实用程序。将跨浏览器jQuery代码重写为特定于Firefox的代码是令人沮丧的,例如请求模块。