gpt4 book ai didi

javascript - 在 Firefox Web Extension 中使用 chrome.runtime.sendMessage 不会产生响应

转载 作者:行者123 更新时间:2023-12-03 08:20:37 25 4
gpt4 key购买 nike

我正在尝试编写一个跨浏览器扩展,该扩展使用后台脚本和交叉通信的弹出窗口:

在后台脚本中:

class Listener{
listen(cb){
chrome.runtime.onMessage.addListener((transmission, sender, messageResponseFn) => {
cb(transmission, messageResponseFn);
return true;
});
}
}

export default new Listener();

在弹出窗口中:

class Emitter{
send(message, payload){
return new Promise((resolve, reject) => {
chrome.runtime.sendMessage({ message, payload }, (responseMessage) => {
resolve(responseMessage);
});
});
}
}

export default new Emitter();

这在 Chrome 中按预期工作,但在 Firefox 中,发送的响应(该函数被正确调用并且不会抛出异常)永远不会到达我的 Emitter 中。我使用这个API错误吗? Firefox 和 Chrome 之间是否存在我不知道的差异?根据我在the docs中读到的内容应该完全支持 runtime.sendMessage API。

FWIW,这是一个演示该问题的示例存储库:https://github.com/m90/firefox-webextension-issue

最佳答案

这是一个confirmed bug in the WebExtension API所以没有什么可做的。

关于javascript - 在 Firefox Web Extension 中使用 chrome.runtime.sendMessage 不会产生响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com