Actualmente, tengo esto en mi script de fondo:
function disable(tabs) { for (var i = 0; i < tabs.length; ++i) { browser.tabs.sendMessage(tabs[i].id, { command: "Disable" }); } } else if (e.target.classList.contains("disable")) { browser.tabs.query({}) .then(disable) }Tengo esto en mi script de contenido:
(function () { if (window.hasRun) { return; } window.hasRun = true; function disableHelper() { clearInterval(Interval1) console.log("Helper has been disabled") } browser.runtime.onMessage.addListener((message) => { if (message.command === "Blah") { var Interval1 = setInterval(changeToHelper, 15000); Interval1; } else if (message.command === "Disable") { disableHelper(); } }); })();Tengo permisos configurados para ejecutar esto solo en sitios con URL específicas y funciona cuando la pestaña está enfocada/activa.
Sin embargo, si hago clic en "Desactivar" dentro de mi ventana emergente en otra pestaña que no forma parte de los permisos, no se desactivará correctamente en la pestaña deseada.
¿Hay alguna manera de 'enviar mensaje' a todas las pestañas, independientemente de si están enfocadas/activas?