3

Chrome拡張機能をFirefoxに移植する作業をしています。Chrome拡張機能では、バックグラウンドスクリプトにJQueryが含まれています。これは、バックグラウンドスクリプト全体でAJAXに使用されます。

Firefox Jetpack SDKを使用すると、次のことができるようになります。

require("modulename")

ただし、これは、modulenameが次のコードを含むFirefox拡張モジュールである場合にのみ機能します。

exports.someVar = someLocalVar

モジュールの機能を他の場所で利用できるようにするため。明らかに、JQueryはこのようなモジュールとして設定されていないため、それを要求する方法はありません。

Firefoxアドオンのバックグラウンドでlib/main.jsファイルにJQueryを含めて、main()関数でJQueryにアクセスできるようにする方法はありますか?

4

1 に答える 1

1

これを投稿して以来、私はそれがやや無駄な努力であることを認識しました。Wladimir Palantがコメントで指摘しているように、JQueryはDOMにアクセスすることを目的としています。main.jsファイルにはウィンドウまたはドキュメントオブジェクトがないため、この機能はまったく役に立ちません。

Chromeのバックグラウンドスクリプトで正しく機能するJQueryforAJAXを使用するつもりでしたが、FirefoxアドオンにはXMLHttpRequestオブジェクトがないため、ここでもJQueryはまったく役に立ちません。正しい解決策は、代わりにfirefox Request()APIを使用してコードを書き直すことです。

CommonJSアプリケーションにJQueryを含めたい場合は、ウィンドウ、ドキュメント、およびXMLHttpRequestが定義されていると仮定して、JQueryをモジュールに入れるこのプロジェクトを見つけました:https ://github.com/jakobmattsson/commonjs-jquery

于 2012-06-19T13:51:04.593 に答える