扩展库中的消息传递的兼容性库,Firefox与Chrome

时间:2019-03-31 21:54:40

标签: google-chrome firefox google-chrome-extension promise firefox-addon

现在(几乎)似乎可以对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);
    })
  });
}

我想其他人一定已经在这样做了?在某处是否有兼容库?还是至少有一个描述该领域当前不兼容问题的博客文章?

0 个答案:

没有答案