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, "*");
      });
   }
});

一般来说,火狐上下文脚本有没有办法访问周围的页面?

4

1 回答 1

1

不确定我是否收到您的问题,但是在文档中描述了如何将消息从内容脚本发送到页面脚本:

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

希望能帮助到你!

于 2013-02-13T15:38:34.180 回答