1

Add-on SDK を使用する Firefox アドオンで、 のdataディレクトリから 2 つのライブラリ ファイルをインクルードしようとしていますが、機能しmain.jsません。

次のディレクトリ構造があります。

data
-- jquery-latest.min.js
-- pagemodscript.js
-- mylibrary.js

lib
-- main.js

pagemodscript.jsjQueryを使用し、それが機能します(を使用contentScriptFile)。

mylibrary.jsjQuery とinも使用したいmain.jsのですが、うまくいきません。

私が試したさまざまなことの結果、「ReferenceError: [class in mylibrary.js] が定義されていません」、「ModuleNotFoundError: 満たすことができません: require(mylibrary.js)」、および「読み込む権限がありません」というエラー メッセージが表示されます。

に移動mylibrary.jsしてコピーしよjquery-latest.min.jsうとしましlibたが、エラー メッセージのいずれかが表示されました。

これを設定する最良の方法は何ですか?

注: jQuery を使用する理由main.jsは、によって生成されたイベントの後、によって生成された別のイベントから作成されたオブジェクトのリストを表示する現在のページに div を追加しpagemodscript.jsたいからです。これらのオブジェクトを作成してdivを作成する方が良いですか? その場合、これは機能します。私はusingにロードします。その場合、 で定義されたクラスのオブジェクトを作成することになりますが、それは私がやりたい方法ほど良い設計ではないようです。main.jspagemodscript.jspagemodscript.jsmylibrary.jspagemodscript.jscontentScriptFilepagemodscript.jsmylibrary.js

4

1 に答える 1

3

私もjQueryを使いたいmylibrary.jsですmain.js

それはあなたに何の役にも立たないでしょう。jQueryはウィンドウ内で実行されることを想定しており、DOMと連携します。拡張ファイルはまったく異なる環境で実行されます。アクセスするウィンドウがなく、一部の一般的なウィンドウ機能は使用できません。また、拡張ファイルはDOMへのアクセスを許可されていないため、すべてのWebページへのアクセスはコンテンツスクリプトで行う必要があります。

main.js現在のページにdivを追加したい

コンテンツスクリプト()にメッセージを送信し、pagemodscript.jsそれによってdivが作成されるようにする必要があります。これがアドオンSDKでの動作方法です。

于 2012-04-27T22:06:26.430 に答える