Soy nuevo en el desarrollo de extensiones. Estoy tratando de inyectar un script de contenido mediante programación como se describe en la documentación .
Este es mi background.js .
chrome.action.onClicked.addListener((tab) => { try { chrome.scripting.executeScript({ target: { tabId: tab.id }, files: ["content-script.js"], }); } catch (err) { console.log(err); } }); Y este es mi conten-script.js .
const message = "Hello Stranger"; window.alert(message);Al hacer clic en el ícono de la extensión más de una vez, aparece el siguiente error.
Uncaught SyntaxError: Identifier 'message' has already been declared (at content-script.js:1:1)Pero cuando ejecuto el mismo código en una función, funciona bien.
(function () { const message = "Hello Stranger"; window.alert(message); })();Parece que Chrome tiene algún tipo de "entorno global" donde se ejecuta el script y ese entorno mantiene referencias a las variables declaradas en la ejecución anterior. Me encantaría saber qué está pasando aquí. La documentación no tiene una explicación (todavía tengo que encontrarme si la tiene).