【发布时间】:2012-08-22 15:38:52
【问题描述】:
我正在将一个扩展从 Google Chrome 移植到 Firefox 的 Addon SDK (v1.9)。由于它在后台页面(Firefox 上的 main.js)上使用 jQuery,我想在 Firefox 版本上也使用该库。但是,由于无法从插件代码本身访问窗口对象(并且 jQuery 广泛基于此),我想知道是否有更好的方法从插件代码实现 jQuery 库。也许有一种方法可以使用“require('jquery')”将 jQuery 作为模块导入。
澄清一下,我知道如何在内容脚本上实现 jQuery。我要做的是在插件代码本身上使用 jQuery,例如“main.js”(或您给背景“主”模块提供的任何名称)。
【问题讨论】:
-
没有“背景窗口”,模块在没有任何窗口的沙盒上下文中执行。除非我错过了某个人,否则即使您设法导入了 jQuery,jQuery 在这种情况下也绝对没用。
-
我想 chrome 中的 1 个小用例是跨域请求。在附加 SDK 中,您将改为使用请求模块:addons.mozilla.org/en-US/developers/docs/sdk/latest/packages/…
-
我只有一些简单的函数,例如在 Google Chrome 版本的插件中使用的 $.each() 和 $.ajax()。我想我将不得不在没有 jQuery 的情况下实现它们。
-
对于 $.ajax,使用请求模块。对于 $.each 或类似的,您可以使用 Array 对象的 forEach 迭代器模式,或者 for 循环,或者...
-
除非我误解了(或者这个功能在问题发布后已经添加:))为什么不直接使用
pageMod和contentScriptFile呢?这将使您可以将 jquery 注入可以访问页面内容的插件的内容脚本代码中。然后您可以使用port消息在插件和内容脚本之间进行通信。
标签: javascript firefox firefox-addon firefox-addon-sdk