首先:这与“如何自动转换 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/