Pregunta

¿Es posible que el javascript que escriba para un componente XUL interactúe con el javascript definido en una página web?

Por ejemplo, si una página web particular tiene una función dooSomethingNeat (), ¿puedo hacer que un botón definido en una superposición XUL ejecute esa función, o vive en otro espacio de nombres?

Dicho de otra manera: si estoy buscando mejorar la funcionalidad de un sitio web a través de mi propio código, ¿tiene más sentido escribir una extensión de Firefox o usar algo como greasemonkey?

¿Fue útil?

Solución

Ver mi respuesta a otra pregunta aquí .

  • El código de la página web vive en un 'espacio de nombres' separado de los ámbitos en los que se ejecuta el código del navegador.
  • Sin embargo, no significa que no pueda acceder desde una extensión.
  • Por otro lado, ejecutar una función en una página de contenido no es muy fácil de hacer de forma segura en este momento.
  • Los scripts de Greasemonkey (y los scripts de ubicuidad, que también pueden interactuar con páginas web) son algo más fáciles de desarrollar que las extensiones, y Greasemonkey ya implementa las precauciones de seguridad necesarias para permitirle interactuar con páginas web de forma segura.
  • Si desea que otros usen su script, empaquetarlo como una extensión independiente reduce la barrera de entrada (en el otro caso, los usuarios de GM existentes pueden preferir scripts de GM más simples a una extensión separada).

Entonces, si puede implementar lo que necesita hacer con un script GM o un script ubicuo, diría que vaya con él. Al menos puede comenzar con él, luego convertirlo a una extensión cuando encuentre algo que no puede hacer con GM.

Si necesita funciones que no son compatibles con Greasemonkey o si solo desea intentar crear una extensión, también es una opción viable.

Otros consejos

Hay una Greasemonkey-to-firefox-extension " compilador " disponible, pero no está actualizado con los últimos cambios de GM.

Sin embargo, tiene el marco básico de GM para la interacción y la seguridad de la página, todo incluido como una extensión independiente, listo para que lo modifiques y extiendas.

El uso de una extensión independiente o un script GM depende de quién lo instalará. ¿La base de usuarios estará dispuesta a instalar GreaseMonkey, ENTONCES el script? ¿O la extensión es suficiente como barrera de instalación?

La licencia de GM permite reempaquetarla con scripts preestablecidos, creo, pero no puedo encontrar citas para esto, por el momento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top