Как получить значение ключа из локального хранилища, которое хранится в вашем браузере в расширении Chrome - PullRequest
0 голосов
/ 19 апреля 2020

Я новичок в разработке Chrome Расширения.

Я пытаюсь получить значения для одного из ключей, который хранится в хранилище моего браузера (inspect -> Application -> Localstorage). Что я хочу сделать, так это в моем Chrome расширении, когда вы нажимаете кнопку, мне просто нужно получить значение из localalstorage для страницы, которая открыта в текущей вкладке моего браузера.

Это JS функция, которую я использую -

chrome.storage.local.get(['granted.selected'], function(result) {
            console.log('Value currently is ' + result.granted.selected);
         }); 

granted.selected - это имя ключа, значение которого я хочу получить.

При выполнении этого я получаю " Значение в настоящее время не определено", тогда как я хочу, чтобы он извлекал значения, хранящиеся в вышеуказанном ключе (grant.selected).

Что мне нужно добавить, чтобы этот выбор извлек значение для этого ключа из localstorage моей текущей открытой вкладки?

Короче говоря - просто хочу получить доступ к localStorage веб-страницы из Chrome расширения.

Любая помощь будет принята с благодарностью. Спасибо !!

1 Ответ

0 голосов
/ 19 апреля 2020

chrome.storage.local - это не localStorage, это совершенно другой API хранилища.

localStorage - это хранилище DOM.
Для доступа к DOM веб-страницы вам необходим контент script [1] .
Вот пример программирования c внедрения во всплывающий скрипт или в фоновый скрипт:

chrome.tabs.executeScript({
  code: 'localStorage["keyName"]'
}, ([result] = []) => {
  if (!chrome.runtime.lastError) {
    console.log(result);
    // use the result here inside the callback
  }
});

Примечания:

  • Вам понадобятся разрешения в манифесте. json, как описано в [1] .
  • keyName - это имя ключа, как видно на панели devtools "Application" в Интернете страница
  • каждая часть расширения имеет собственную собственную консоль devtools .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...