Firefoxのカスタムプラグインを開発しています。このプラグインの関数の1つには、クリックすると別のdiv要素の表示/非表示を切り替える必要があるボタンがあります。これは、Javascript関数の手段によって実現されます。関数自体は、プラグインにもパッケージされているファイル内にあります。クロムのURLでHEADにJavaScriptを読み込む
div要素はブラウザページにあるので、この関数のJavascriptをクロムURLを使用してページのHEADにロードしようとしています。しかし、それは望ましい結果を与えていません。
トグル動作を実行し、実際のJavascript:
以下は関連するコードの抜粋です。これのクロムURLは次のとおりです。chrome://firefox_extension/content/togglerowz.js
このURLをブラウザに挿入すると、下のコードを表示できます。
これをブラウザHEADにロードする別のJavascript。これは、ウィンドウロードイベントによってトリガーされます。
ページが読み込ま(Firebugの中で見て)、以下の内容は、ページのHEAD要素であるvar doc = aEvent.originalTarget;
var togglerowzscript = doc.createElement("script");
togglerowzscript.type = "application/javascript";
togglerowzscript.src = "chrome://firefox_extension/content/togglerowz.js";
var headvar = doc.getElementsByTagName("head")[0];
headvar.appendChild(togglerowzscript);
:私はボタンをクリックすると
エラーコンソールは、トグルが定義されていないと言います。
この入力をありがとう!だから私のプラグインフォルダがfirefox_extensionで、スクリプトがその中のchromeフォルダにあるなら、chorme.manifestファイルを修正し、 "firefox_extension chrome/contentaccessible = yes"のような行を追加する必要がありますか?あるいは、それを個々のスクリプトファイルに適用する方法はありますか? –
@Sagar Vすでにchrome.manifestにそのような行があるはずです。 'contentaccessible = yes'を追加するだけです。一部のファイルにのみ適用したい場合は、それらのファイルを別々のクロムパッケージに入れる必要があります。拡張機能は、chrome.manifest経由で複数のchromeパッケージにマッピングできます。 –
ありがとうございました!今私のために働いています。 –