1

Chrome拡張機能をFirefoxに移植しています。これは、コンテンツスクリプトを使用して、postMessageを介して周囲のページのメソッドを呼び出します。このページには、次のようなイベントリスナーが含まれています

window.addEventListener('message', function(event) {
   console.log(event)
}, false);

次の呼び出しを使用して、FirefoxアドオンのSDKコンテンツスクリプトからメッセージを送信しようとしています。

self.postMessage({toPage: true, type: "initAck"}, "*");

ところで、windows.postMessageを直接使用しようとしましたが、使用する必要があるという例外が発生しますself.postMessage

アドオンでこのメッセージを聞いてmain.js、メソッドを介して投稿しましたworker.postMessageが、メッセージがページのイベントリスナーに届きません。

pageMod.PageMod({
   include: "*",
   contentScriptWhen: "start",
   contentScriptFile: [self.data.url("jquery.min.js"),
                       self.data.url("myscript.js")],
   onAttach: function(worker) {
      worker.on("message", function(addonMessage) {
           worker.postMessage(addonMessage, "*");
      });
   }
});

一般的に、Firefoxコンテキストスクリプトが周囲のページにアクセスする方法はありますか?

4

1 に答える 1

1

質問があるかどうかはわかりませんが、ドキュメントには、コンテンツスクリプトからページスクリプトにメッセージを送信する方法が記載されています。

document.defaultView.postMessage("Message from content script", "http://my-domain.org/");

それが役に立てば幸い!

于 2013-02-13T15:38:34.180 に答える