将chrome扩展名移植到firefox

时间:2014-03-06 23:21:32

标签: javascript firefox-addon

首先:这与“如何自动转换chrome扩展”没有重复......

我写了一个非常受欢迎的复杂镀铬扩展程序。所以很多人都让我发布一个firefox版本。

我目前处于分析我可能遇到的困难的早期状态。我能够将大多数特定于chrome的命令映射到firefox中的其他命令。

直到现在,还有一个主题未解决: Chrome使用内容脚本和后台脚本。

沟通的方式是这样的: 内容脚本:

chrome.runtime.sendMessage(
{
   Action: "LoadAll"
}, function(response)
{
   mySetting= response.Setting;
}
);

背景脚本:

chrome.runtime.onMessage.addListener(
   function(request, sender, sendResponse)
   {
      if (request.Action === "LoadAll")
            {
               sendResponse({Setting: "hello out there!"});
               return true;
            }
      )
    });

(如果我可能错过了一个括号,请忽略)

如何在firefox扩展上完成此通信?或者FF推荐一种完全不同的方法吗?

如果没有“接受此命令” - 回答,指向更深入解释的链接会很不错。

1 个答案:

答案 0 :(得分:2)

您正在寻找的是Message Manager。我们正在为Fx开发一个大而复杂的扩展大约2年,并且最近为它做了一个很好的Chrome端口。消息传递过程在Fx和Chrome中有很大差异。您可以将其视为在窗口/浏览器/选项卡中注入内容脚本,这与Chrome中的内容脚本几乎没有共同点,然后通过sendSyncMessage / sendAsyncMessage从注入的脚本中与您的扩展代码进行通信。我希望这会有所帮助。