Я отправил запрос из моего сценария контента и получил ответ с моей фоновой страницы. Теперь я хочу установить переменную в своем сценарии содержимого - на основе ответа. Вот где у меня проблемы. Должно быть достаточно просто ... Думаю, я должен ошибаться в синтаксисе. Вот что в моем сценарии содержания:Установить переменную в сценарии содержимого в соответствии с сообщением, переданным с страницы BG - расширение chrome
chrome.extension.sendRequest({greeting: "hello"}, function(response) {
console.log(response.farewell);
if (response.farewell == "goodbye") {
wasPolite = "yes";
}
else if (response.farewell == "goaway") {
wasPolite = "no";
}
else {
wasPolite = "maybe";
}
});
alert(wasPolite);
Консоль показывает goaway
как ответ, но wasPoite
остается неопределенным.
Где вы тестируете значение wasPolite? Я предполагаю, что это проблема с охватом. Не могли бы вы разместить немного больше кода, показывающего область переменной wasPolite и где она определена и впоследствии протестирована? –
Он определен здесь в коде выше, как глобальная переменная на странице, где этот скрипт вводится, и все. Он тестируется на следующей строке, следующей за приведенным выше кодом. Я пытался «оповещать (wasPolite)», но не кубик ... –
Если вы определяете var wasPolite = ''; перед chrome.extension .... и он все равно не предупреждает о правильном значении, тогда я бы спросил, является ли функция chrome.extend.sendRequest() асинхронной? Если это так, вы можете предупредить wasPolite, прежде чем запрос успеет обратный вызов. @Ruup, вероятно, находится на пути, предполагая, что wasPolite будет иметь свою ценность только после того, как sendRequest фактически закончит, тем самым активировав обратный вызов. –