(enlace a git: https://github.com/Boundarybreaker/NameBlock )
Estoy trabajando en una extensión de reemplazo de texto que puede activarse y desactivarse con un botón que se hace clic en popup.html
, pero solo ocurre cuando hago clic en el icono. (video: https://drive.google.com/file/d/0B_3pLT_KI8V8OHJFUHQ5a1JURkE/view?usp=sharing )
El código para el botón lee , y
toggleActive()
es una función en background.js
, junto con un oyente chrome.runtime.onMessage.addListener(toggleActive);
. ¿Cómo hago para que el botón funcione correctamente?
onclick es un tipo de script en línea, por lo que está prohibido en la ventana emergente.
Use myButton.addEventListener('click',toggleActive);
en su popup.js Obtenga myButton
de la forma habitual, agregando un id a su html y utilizando document.getElementById
, o getElementsByClassName, querySelectorAll
o cualquier otra forma.
toggleActive
definido en popup.js puede enviar un mensaje a background.js, donde el oyente llamaría toggleActive
de toggleActive
, o simplemente puede obtener la página de fondo con chrome.runtime.getBackgroundPage
o chrome.extension.getBackgroundPage
(el primero es async, el último está sincronizado, devolviendo el objeto de fondo de la ventana) y llame a su fondo para toggleActive
desde aquí, como esto:
var bkg=chrome.extenstion.getBackgroundPage(); bkg.toggleActive();
Es decir, si realmente necesita definir su toggleActive en segundo plano en lugar de una ventana emergente.
Creo que deberías hacer eso:
Te olvidas de los paréntesis después de un clic.