10

拡張機能をChromeからFirefoxに移動し、アドオンSDKを使用しています。パネルまたはポップアップからバックグラウンドファイルで宣言された関数にアクセスするにはchrome.extension.getBackgroundPage、Chromeで使用できます。Firefoxには、他の場所で宣言されたデータ/関数main.jsまたは他のファイルにアクセスできる同等のものがありますか?

4

1 に答える 1

1

どうやらJetpackはこれをサポートしていません(ただし、バニラFirefoxアドオンで可能です)。

ただし、アドオンとコンテンツスクリプト間のイベントを介したメッセージングが含まれるため、役立つ章がありますが、それはそれほど単純ではありません。

編集:

拡張機能についてMDNから例を見てみましょう。XUL+JavaScriptはHTML+JavaScriptと考えることができます。Jetpackがメインのアドオンコードをコンテキストコード(html、javascript、パネル内のcss、ウィジェットなど)から分離(サンドボックス)する方法とは対照的です。単一の「ユーザースペース」で実行されます。

以前にリンクされたページのオーバーレイに適応し、XPCOMで動作するJavascriptコードを追加すると、次のようになります。

<?xml version="1.0"?>
<overlay id="sample" 
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 <script type="text/javascript">
   function getOS() {
     return Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).OS;
   }
 </script>
 <statusbar id="status-bar">
  <statusbarpanel id="my-panel" label="OS?" onclick="alert(getOS())" />
 </statusbar>
</overlay>

また、関数が外部ファイルにあるとすると、通常のJavaScriptのように含めるだけです。

于 2011-05-21T18:58:25.130 に答える