1

読んで、XBL内にjsファイルを追加するテクニックを見つけましたが、テクニックが機能しません。<'script src='test.js''> タグ:とを宣言しようとしました<'script src='chrome://content/test.js '>が、どれも機能しませんでした。

テストクラス内のメソッドは単純function caller() { alert("call succeeded"); }です。

XBL内にjsファイルを含めるための正確で簡単な方法はありますか?そのため、ファイルから関数を呼び出すと、関数がXBL内に記述されているかのように機能します。

4

2 に答える 2

2

詳細は次のとおりです 。http ://www.w3.org/TR/xbl-primer/#scripts あなたがしていることは問題ないようです、これが彼らが与えている例です:

<xbl xmlns="http://www.w3.org/ns/xbl">
  <script src="example.js"/>

そこにあるxmlnsに注意してください。これがデフォルトの名前空間です。xmlns:xbl = "http://www.w3.org/ns/xbl"として定義されている場合は、次を使用する必要があります。

<xbl:script src="example.js" />

それを試してみてください。私は自分でそれを試したことはありませんが、この名前空間のことはよくある落とし穴です。

編集: 私はこれが不可能かもしれないのではないかと心配しています。これはXBL2.0仕様によるものであり、Geckoはまだサポートしていないようで、XBL1.0にはスクリプトタグが存在しません。

http://groups.google.com/group/mozilla.dev.tech.xbl/msg/d7d4f279ebdad65f?pli=1 彼らはここで、開発が本格化するべきだと述べています。

彼らが指しているリンクは次のとおりです:https ://wiki.mozilla.org/XBL2しかし、2009年以降更新されていないようで、これが実装されるかどうかさえわかりません。

そして、スクリプトタグが存在しないことを確認できるXBL 1.0リファレンスは次のとおりです:https ://developer.mozilla.org/en/XBL/XBL_1.0_Reference

しかし、可能な代替案を提供するために、モジュールを使用することができ、コンストラクターで次のようなことを行います。

<constructor>
    Components.utils.import("resource://yourextension/config.js");

モジュールの詳細については、 https: //developer.mozilla.org/en/JavaScript_code_modules および例:https ://developer.mozilla.org/en/JavaScript_code_modules/Using 基本的に、モジュールフォルダーを登録してテストを行う必要があります。その中のjs、それから関数/変数を「エクスポート」する方法の指示に従ってください。その後、JavaScript、XUL、またはXBLファイルにインポートできます。

于 2011-02-18T10:07:38.250 に答える
1

XBL1はスクリプトタグをサポートしていません。できる最善の方法は、必要なときにモジュールから関数をインポートすることです。

于 2011-02-19T00:10:35.183 に答える