3

GoogleChromeからFirefoxのアドオンSDK(v1.9)に拡張機能を移植しています。バックグラウンドページ(Firefoxではmain.js)でjQueryを使用しているので、Firefoxバージョンでもそのライブラリを使用したいと思います。ただし、アドオンコード自体からウィンドウオブジェクトにアクセスできないため(jQueryはそれに広く基づいています)、アドオンコードからjQueryライブラリを実装するためのより良い方法があるかどうか疑問に思いました。「require('jquery')」を使用してjQueryをモジュールとしてインポートする方法があるかもしれません。

明確にするために、私はコンテンツスクリプトにjQueryを実装する方法を知っています。私がやろうとしているのは、「main.js」(またはバックグラウンドの「main」モジュールに付けた名前)などのアドオンコード自体でjQueryを使用することです。

4

2 に答える 2

2

結論は、含めることは不可能(または非常に難しい)であるということです。

ただし、前述のように、ほとんどの場合は無意味です(バックグラウンドページからウィンドウオブジェクトにアクセスできないため)。

于 2012-11-06T21:13:29.320 に答える
1

また、ChromeからFirefoxに拡張機能を移植していて、これを思い付くことができました。

var {Cc, Ci} = require("chrome");
_window = Cc["@mozilla.org/appshell/appShellService;1"]
    .getService(Ci.nsIAppShellService).‌​hiddenDOMWindow;

$ = require('jquery')(_window);

ここにもう少し詳細があります。

現在、非DOMコンテキストでのjQueryの用途はたくさんあります。特に、Deferredやajaxのもの、およびextendなどのユーティリティがあります。クロスブラウザのjQueryコードをFirefox固有(リクエストモジュールなど)に書き直さなければならないのはイライラするでしょう。

于 2015-03-14T21:34:15.067 に答える