Не удается общаться между параметрами и фоном в веб-расширениях в Microsoft Edge - PullRequest
1 голос
/ 08 января 2020

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

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

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

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

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

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

1 Ответ

0 голосов
/ 13 января 2020

Итак, я нашел решение, которое работает для меня. Я использую chrome .storage.local вместо localStorage и получаю фоновый обмен данными в режиме реального времени.

Я устанавливаю некоторое значение в параметрах. js:

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

И создать прослушиватель на фоне . js для отслеживания изменений в реальном времени:

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