javascript - 将 Chrome 扩展移植到 Firefox

标签 javascript firefox-addon

首先:这与“如何自动转换 Chrome 扩展”不重复...

我编写了一个非常流行的复杂的 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 是否推荐一种完全不同的方法?

如果没有“执行此命令”- 答案,则最好有一个更深入解释的链接。

最佳答案

您要找的是Message Manager 。我们花了大约 2 年的时间为 Fx 开发一个大型且复杂的扩展,并且最近对其进行了良好的 Chrome 移植。 Fx 和 Chrome 中的消息传递过程存在很大差异。可以想象一下,您在窗口/浏览器/选项卡中注入(inject)了一个内容脚本,它与 Chrome 中的内容脚本几乎没有共同点,然后通过 sendSyncMessage/sendAsyncMessage 从注入(inject)的脚本中与您的扩展代码进行对话。我希望这会有所帮助。

关于javascript - 将 Chrome 扩展移植到 Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22238305/

相关文章:

javascript - FF 3.5 扩展名 : window. 标题为 'undefined'

javascript - d3 js 圆形条形图,如何传递对象而不是 .csv 文件?

javascript - 跨网站缓存Javascript库

JavaScript 不识别正则表达式类

javascript - 如何在 PHP 后获取 td 值?

javascript - 插件 sdk 更新 simple-prefs 值

javascript - 使用 Firefox Addon (SDK) 保存网站图像

firefox - Selenium默认添加Skype点击调用插件

javascript - 显示多个数组中的元素

javascript - jquery中的$scope指的是什么?