无法在 Microsoft Edge 的 webextensions 中的选项和背景之间进行通信

Can't communicate between options and background in webextensions in Microsoft Edge

我正在为 Microsoft Edge 构建一个扩展。我有一个选项页面,它像这样将一些值保存到 localStorage

localStorage.setItem('xxx', document.getElementById("xxx").value);

并在后台脚本中检索它们:

var value1 = localStorage.getItem('xxx');

在除 Edge 之外的所有浏览器中都能完美运行。我必须关闭 Edge,重新打开它,然后它才会更新 background.html 的存储。我检查了 options.htmlbackground.html,发现更新选项存储不会影响背景,这很奇怪,因为他们必须共享相同的存储空间。

这个问题有解决办法吗?

所以,我找到了适合我的解决方案。 我使用 chrome.storage.local 而不是 localStorage 并获得实时选项-后台通信。

我在options.js中设置了一些值:

chrome.storage.local.set({xxx:document.getElementById('xxx').value});

并在background.js中创建监听器来跟踪实时变化:

    chrome.storage.onChanged.addListener(function(changes, namespace) {  
     for(var key in changes) {
      window[key] = changes[key].newValue;
     }
   });