Я новичок в js и создаю расширение для Chrome, и я хочу взять сообщение из background.js и использовать его в popup.js после нажатия кнопки.
popup.js
window.onload=function(){
document.getElementById("BTC").addEventListener("click", bitcoin);
}
function bitcoin(){
console.log("Clicked!");
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse){
if(msg.greeting == "BTC"){
var prices = msg.data;
console.log(prices);
sendResponse({});
}
});
}
background.js
function coinArray(coins){
console.log(coins);
for (var i = 0; i < 12; i++){
var prices = new Array();
prices[i] = coins[i].price_usd;
}
chrome.runtime.sendMessage({greeting: "BTC", data: prices}, function(response) {});
}
Я ожидаю увидеть массив из 12 лучших цен на криптовалюты с Coinmarketcap.com в виде массивав моей всплывающей консоли, когда я нажимаю кнопку «BTC».Я могу console.log это в background.js без проблем.Функция coinArray вызывается, когда я загружаю данные из онлайн-API, который представляет собой запрос XMLHTTPRequest, не показанный в коде.
В настоящее время только "нажали!"проходит через другой конец, и я чувствую, что проблема может быть в том, что строка onMessage находится внутри самой функции?Не уверен, куда идти после поиска решений этой проблемы.Любая Ясность будет высоко ценится!