在Firefox Addon SDK后台页面上使用jQuery

时间:2012-08-22 15:38:52

标签: javascript firefox firefox-addon firefox-addon-sdk

我正在将Google Chrome的扩展程序移植到Firefox的Addon SDK(v1.9)中。由于它在后台页面上使用jQuery(Firefox上的main.js),我想在Firefox版本上使用该库。但是,由于窗口对象无法从插件代码本身访问(并且jQuery广泛基于此),我想知道是否有更好的方法从插件代码实现jQuery库。也许有一种方法可以使用“require('jquery')”将.jQuery作为模块导入。

为了澄清,我知道如何在内容脚本上实现jQuery。我想要做的是在插件代码本身上使用jQuery,例如“main.js”(或者你给背景“main”模块的任何名称)。

2 个答案:

答案 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的代码是令人沮丧的,例如请求模块。