quantum habilitar desactivar cómo activar javascript firefox dom document

habilitar - ¿Cómo ejecuto una función de JavaScript definida por la página desde una extensión de Firefox?



desactivar javascript firefox (4)

Es por razones de seguridad que tiene acceso limitado a la página de contenido desde la extensión. Ver XPCNativeWrapper y acceder de forma segura al contenido DOM desde Chrome ,

Si controla la página, la mejor manera de hacerlo es configurar un detector de eventos en la página y enviar un evento desde su extensión (addEventListener en la página, dispatchEvent en la extensión).

De lo contrario, consulte http://groups.google.com/group/mozilla.dev.extensions/msg/bdf1de5fb305d365

Estoy creando una extensión de Firefox para propósitos de demostración. I para llamar a una función específica de JavaScript en el documento de la extensión. Lo escribí en mi documento HTML (no dentro de la extensión, sino en una página cargada por Firefox):

document.funcToBeCalled = function() { // function body };

Entonces, la extensión ejecutará esto en algún evento:

var document = Application.activeWindow.activeTab.document; document.funcToBeCalled();

Sin embargo, genera un error que dice que funcToBeCalled no está definido.

Nota: podría obtener un elemento en el documento llamando a document.getElementById(id);


Puede hacerlo, pero necesita tener control sobre la página y poder elevar el nivel de privilegio para la secuencia de comandos. La documentación de Mozilla da un ejemplo : busque "Privilegio" en la página.


Tengo una forma muy simple de hacerlo. Supongamos que tiene que llamar a la función xyz () que está escrita en la página. y debes llamarlo desde tu complemento.

crea un botón ("hazlo invisible, para que no moleste tu página"). al hacer clic en ese botón, llama a esta función xyz ().

<input type="button" id="testbutton" onclick="xyz()" />

ahora en pluggin tienes un objeto de documento para la página. supongamos que su principalDoc

donde quieras llamar a xyz (), simplemente ejecuta esta línea

mainDoc.getElementById(''testbutton'').click();

llamará a la función xyz ().

buena suerte :)


document.wrappedJSObject.funcToBeCalled();

Esto no es seguro y permite que una página maliciosa eleve sus permisos a los de su extensión ... Pero hace lo que usted solicitó. Lea sobre las vulnerabilidades de greasemonkey de por qué esta es una mala idea.