0

Я создаю расширение хром. В этом я получаю проблему при отправке сообщения из background.js в popup.js. Мне удастся отправить некоторые статические данные из background.js в popup.js. Но когда я пытаюсь отправить данные динамически (т. Е. Данные, отправленные на background.js по content-script.js) из background.js в popup.js, он дает неопределенные значения, поскольку я печатаю его на popup.html.Ошибка при отправке данных из background.js в popup.js в chrome extension

Это мой popup.js:

var value; 
    window.onload = function(){ 
    chrome.runtime.sendMessage({getVal: "Hi"}, function(response){ 
    value = response.responseSeltext; 
    alert(value); 
    }); 
    document.getElementById('save').onclick = test; 
} 

Это мой background.js:

var seltext; 
     chrome.runtime.onMessage.addListener(
     function(request, sender, sendResponse) { 

     if (request.ezynotes != ""){ 
      seltext = request.ezynotes; 
      alert("In extension "+seltext); 

      //document.getElementById("notes").innerHTML += request.ezynotes; 
     } 
     if (request.getVal != ""){ 
      sendResponse({responseSeltext:seltext}); 

      //seltext = request.ezynotes; 
      alert("In extension "+seltext); 

      //document.getElementById("notes").innerHTML += request.ezynotes; 
     } 

    }); 
+0

Не могли бы вы использовать _ alert() 'для отладки? Он крадет фокус со своего всплывающего окна и может закрыть его. Также известно, что он вызывает проблемы из-за блокировки выполнения. – Xan

+0

Я попытался удалить все предупреждения, но все же он дает undefined на popup.html. – RSY

+0

Как вы проверяете, что он не определен? Кроме того, попробуйте отладить, щелкнув правой кнопкой мыши на кнопке расширения и выбрав «Inspect popup», если вы еще этого не сделали. – Xan

ответ

-2

Я предполагаю ур прослушивания для сообщения в фоновом режиме с content.js и пытается отправить его к popup.js. Правильно? В этом случае вам нужно отправить сообщение из фона и добавить прослушивающее событие в popup.js, которого нет в вашем коде.

+0

Спасибо. Я слушаю сообщение в фоновом режиме из content.js и пытаюсь отправить его в popup.js. Верно. Я думаю, что прослушивание сообщения в popup.js - это один из способов, а другой способ - это то, что я написал, т. Е. Ответ, который будет исходить из background.js. Я проверил, просто отправив статические данные («Привет») из background.js в popup.js, но я не могу получить эти динамические данные. – RSY

+0

@RSY В background.js seltext не определяется, почему причина не установлена. В глобальных переменных javascript значение по умолчанию не определено. – Casey

Смежные вопросы