Не удается установить связь между параметрами и фоном в 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;
}
});