【问题标题】:Porting a chrome extension to firefox将 chrome 扩展移植到 Firefox
【发布时间】:2014-03-06 23:21:31
【问题描述】:

首先:这与“如何自动转换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 推荐一种完全不同的方法?

如果没有“接受此命令” - 答案,一个更深入的解释的链接会很好。

【问题讨论】:

  • 我假设你想做一个 Fiefox SDK 插件?请修复标签。
  • @Blargh 好像不是这样。
  • 这到底是做什么的?就像 HTML DOM 中是否有一个按钮,并且您希望它 onclick 来触发插件内部的功能?如果是这种情况,请告诉我我有一些解决方案给你。
  • @Noitidart 更多。扩展有一个选项菜单,我可以在其中输入一些属性。然后在我操纵的“正常”网站中需要这些设置(只是所发生操作的一个示例)
  • “内联选项”是 Firefox 的小菜一碟。所以总结一下你的插件,它是一些选项,然后是某个主机的页面加载?某些href?你注入/操纵它?

标签: javascript firefox-addon


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-06-13
    • 2015-08-08
    • 1970-01-01
    • 2011-06-07
    • 2015-05-10
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多