Sé que esta pregunta ya ha sido respondida, pero ninguna de las respuestas anteriores me ayudó. Recientemente estoy en JS y todavía no entiendo las complejidades de todas las cosas.
Cuando intento enviar un mensaje desde la ventana emergente a la pestaña de contenido del script y obtengo una respuesta al mensaje, aparece un error (abajo). Sin responder al mensaje, todo funciona bien.
Pasé mucho tiempo leyendo los documentos de las extensiones de Chrome y buscando en los foros, pero todo lo que no intento me devuelve al error:
Unchecked runtime.lastError: The message port closed before a response was received.Intenté devolverle la verdad y las promesas, pero seguía marcando el tiempo. El código emergente y el script de contenido se encuentran a continuación.
// popup side let params = { active: true, // lastFocusedWindow: true }; chrome.tabs.query(params, init); function init(tabs) { htmlStates.url = tabs[0].url; chrome.tabs.sendMessage(tabs[0].id, htmlStates, (response) => { console.log(response); }) } // content script side function messageCheck(message, sender, sendResponse) { // return true; // return Promise.resolve({response: 'received'}); sendResponse({response: 'some response'}) }