Creé una nueva pestaña de la ventana de Chrome a través de la extensión, pero no puedo enviar un mensaje a su secuencia de comandos de contenido, el evento nunca se disparó
fondo.js
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.action == "run") { chrome.tabs.create({ url: 'https://vnexpress.net/', active: false }, function (tab) { chrome.windows.create({ tabId: tab.id, type: 'popup', focused: true }, function (win) { chrome.tabs.sendMessage(win.tabId, { action: "scrape" }); }); }); } sendResponse(); })content_script.js
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { if (request.action == "scrape") { alert("Scraping!!!"); console.log("Scraping") //This never run } });La lógica parece ser correcta, pero probablemente se llame a sendMessage antes de ejecutar content_script.js.
Para verificar esto, use console.log(new Date) antes de la línea sendMessage y otra en el script de contenido. A continuación, puede comparar las fechas.
Si ese es el problema, puede hacer que el script de contenido envíe un mensaje al script de fondo cuando se cargue, de modo que no haya una condición de carrera.