Как выполнить требования к обратному вызову локального хранилища Edge extension - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь получить доступ к данным локального хранилища в Edge, заданных моей страницей настроек, используя мой всплывающий скрипт.Имеется ли текущий рабочий пример этого доступного?

Я использовал localStorage, но он будет обновлять всплывающее окно, только если я перезагрузил расширение после сохранения изменений на странице настроек.Я хочу упростить пользователю доступ к всплывающему окну, чтобы получить к нему доступ сразу после сохранения, без перезагрузки.Я обнаружил browser.storage.local.get (), но везде я смотрю конфликты документации и не могу найти жизнеспособных рабочих примеров.

Я использовал для документации Edge:


browser.storage.local.get("sample");

Но выдает ошибку, требующую функции обратного вызова.Тогда я использовал:

let sample = browser.storage.local.get("example");
sample.then(ifGood, ifBad);

Я получил ошибку относительно свойства "then".

Затем я просто попытался добавить обратный вызов к самому действию:

sample = browser.storage.local.get("example", callbackFunction);

function callbackFunction(data){
    alert(data);
}

В оповещении о завершении должна отображаться строка, но она просто отображает пустой объект.Как получить доступ к данным, возвращенным в обратном вызове?Я попытался callbackFunction(this) в качестве аргумента в get, но он выдает ошибку о синтаксисе get.

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Вы должны использовать этот синтаксис:
browser.storage.local.get(propertyName | null, callbackFn)
где
callbackFn = function fn(resultObject) {...}

Когда вы передадите null, вы получите весь объект хранения.

Ищите пример 1 или пример 2 в моем расширении Edge.

0 голосов
/ 05 апреля 2019

Я нашел обходной путь, используя browser.runtime.reload() на странице параметров при сохранении изменений. Это все еще перезагружает расширение, но это делает это, не требуя, чтобы пользователь сделал это вручную.

...