firefox扩展中的跨页面通信

时间:2012-05-29 18:15:26

标签: firefox-addon firefox-addon-sdk cross-page-posting

我的扩展程序使用了两个标签,我想在它们之间来回传递事件。我已经开发了一个谷歌浏览器扩展程序,通过后台页面api执行此操作,但似乎并不是Firefox中的等效内容。

我认为firefox扩展文档中的消息管理器可以解决问题,但是关于该对象的文档很差。

如果我无法直接从google chrome api导入背景页面的想法,我会很高兴使用其中一个标签来控制另一个标签。

任何帮助/指导都会很棒。

1 个答案:

答案 0 :(得分:2)

为此,您需要在main.js中设置一个事件管道,它接受来自一个页面内容脚本的事件并将其传递给另一个页面的内容脚本:

https://addons.mozilla.org/en-US/developers/docs/sdk/1.7/dev-guide/guides/content-scripts/index.html

我不完全确定您的用例是什么,因此很难推荐更具体的技术。你要做的是:

  • 确保内容脚本附加到每个标签
  • 当标签中发生的给定事件时,使用self.port.emit将该事件发送到main.js
  • 当该事件到达main.js时,将其发送给另一个选项卡的worker。

我不清楚的一件事是这两个标签是否是唯一使用该特定网址打开的标签?