Para simplificar el escenario, digamos que estoy trabajando en una extensión que solo contiene: alert("Hello") cada vez que carga una página en ejemplo.com. Parte relevante de manifest.json:
"content_scripts": [ { "matches": ["*://*.example.com/*"], "js": ["script.js"] } ]Cuando visito el sitio web por primera vez, funciona bien. Pero el problema es que algunos de los enlaces en el sitio web no recargan la página, solo manipulan el DOM. Entonces, un enlace, por ejemplo, lo llevará a example.com/foo, el script no se ejecuta. Incluso cuando vuelvo a la página de inicio, no vuelve a ejecutarse y se eliminan todas las ediciones que se hicieron la primera vez.
¿Cómo hago para que el complemento reconozca que la página ha cambiado y vuelva a ejecutar el script?
Después de pasar horas en esto, finalmente pude lograr lo que quería, aunque no de la manera que esperaba. Esta es mi solución:
document.addEventListener("click", function(){ editStuff(); });Esto funciona bien para el sitio web para el que estoy creando el complemento. Hay algo de potencia computacional desperdiciada, ya que algunos clics realmente no requieren que la función vuelva a funcionar, pero es mínimo en mi caso de uso.