Estoy intentando crear una extensión que implica mucho procesamiento de datos, pero de alguna manera parece que no puedo vincular un botón básico para hacer algo. Además, si conoce algún recurso que pueda serme útil en el futuro, se lo agradecería.
function helloworld() {
alert("Hello World!");
}
Este comando es de popup.js. También tengo background.js para oyentes, pero no sé cómo usarlos.
Atentamente
Respuesta1
La razón por la que esto no funciona es porque Javascript en línea no está permitido en las páginas de extensión.
JavaScript en línea no se ejecutará. Esta restricción prohíbe tanto
<script>
los bloques en línea como los controladores de eventos en línea (p. ej.<button onclick="...">
).La primera restricción elimina una gran clase de ataques de secuencias de comandos entre sitios al hacer imposible ejecutar accidentalmente secuencias de comandos proporcionadas por un tercero malintencionado. Sin embargo, requiere que escribas tu código con una separación clara entre contenido y comportamiento (lo cual, por supuesto, deberías hacer de todos modos, ¿verdad?)
Puede agregar un controlador onclick usando la addEventListener
función; Esta sección de la documentación de Chrome proporciona un ejemplo de cómo hacerlo:
https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution