现在(几乎)似乎可以对Chrome和Firefox中的扩展程序使用相同的代码。但是,当在扩展的不同部分(弹出窗口,内容,背景)之间发送消息时,仍然存在不兼容性。
Firefox现在似乎领先一些,使用了建议的新browser.
名称空间,而Chrome使用了chrome.
。 Firefox也使用Promise,而Chrome在这里仍然使用回调。
所以我正在编写像这样的函数来解决它:
function extTabsSendMessage(tabsId, msg) {
if (typeof chrome === "undefined") {
let smRet = browser.tabs.sendMessage(tabsId, msg);
console("not chrome, smRet", smRet);
return smRet;
}
return new Promise((resolve, reject) => {
chrome.tabs.sendMessage(tabsId, msg, function (response) {
resolve(response);
})
});
}
我想其他人一定已经在这样做了?在某处是否有兼容库?还是至少有一个描述该领域当前不兼容问题的博客文章?