Не удается установить связь между параметрами и фоном в Webextensions в Microsoft Edge

Я создаю расширение для Microsoft Edge. У меня есть страница параметров, которая сохраняет некоторые значения в localStorage, например:

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

И извлекает их в фоновом скрипте:

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

Прекрасно работает во всех браузерах, кроме Edge. Мне нужно закрыть Edge, снова открыть его, и только тогда он обновит хранилище для background.html. Я проверил options.html и background.html и обнаружил, что хранилище параметров обновления не влияет на фон, что странно, потому что они должны использовать одно и то же хранилище.

Есть ли какое-то решение этой проблемы?

1 ответ

Решение

Итак, я нашел решение, которое мне подходит. Я использую 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;
     }
   });