Как отправить данные из options.js в content.js с помощью хранилища? - PullRequest
0 голосов
/ 18 мая 2019

Я новичок в JavaScript, и для своего первого проекта я подумал, что напишу полезное расширение для Chrome, однако я застрял на том, как отправлять данные со своей страницы параметров расширений Chrome на JavaScript, который запускает страницу. .

В options.js. Мне удалось успешно добавить и извлечь значения из хранилища, используя:
chrome.storage.local.set(obj)
chrome.storage.local.get(obj)
Он работает нормально, пока я храню и извлекаю в одном и том же файле js - options.js.

Я скопировал тот же блок, который извлекает значения из options.js в content.js, однако значение всегда отображается как undefined в отладчике chrome js. На самом деле, я не знаю, как установить значение в options.js и получить его в content.js

Что я делаю неправильно? Могу ли я не запустить chrome.storage.local.set(obj) в options.js, а затем запустить chrome.storage.local.get(obj) в content.js, чтобы получить значения?

Вот фрагмент кода, который покажет вам, что я делаю:

идентификатор текстового поля name, в options.js:

function saveTextbox(txtboxId) {
  var theValue = document.getElementById(txtboxId).value;
  var obj = {};
  obj[txtboxId] = theValue;
  storage.set(obj);
}


в content.js:

function getValue(textboxId) {
  storage.get(textboxId, function(result) {
    return result.name;
  });
}

Буду очень признателен за любые советы о том, как действовать.

1 Ответ

0 голосов
/ 18 мая 2019

Спасибо @wOxxOm, теперь я понимаю, что это асинхронный вызов, и поэтому он не работает:

function getValue(textboxId) {
  storage.get(textboxId, function(result) {
    return result.name; << this is the problem
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...