Estoy moviendo una extensión de Chrome a Firefox y estoy usando Add-on SDK. Para acceder a las funciones declaradas en el archivo de fondo desde un panel o ventana emergente, puedo usar chrome.extension.getBackgroundPage
en Chrome. ¿Hay algún equivalente en Firefox por el cual puedo acceder a los datos/funciones declarados en main.js
o algún otro archivo en cualquier otro lugar?Compartir datos entre archivos en una extensión de Firefox
Respuesta
Aparentemente, Jetpack no es compatible con esto (aunque es posible con los complementos de Firefox de vanilla).
Pero hay un capítulo que lo ayudará, simplemente no es tan directo, ya que implica mensajes a través de los eventos between add-on and the content scripts.
Editar:
Tomemos un ejemplo de MDN about extensions. Puedes pensar en XUL + JavaScript como HTML + JavaScript. A diferencia de la forma en que Jetpack separa (cajas de arena) su código de complemento principal de su código de contexto (html, javascript, css en paneles, widgets, etc.); se ejecuta en un solo "espacio de usuario".
Adaptación en la superposición en la página del enlace anterior, y la adición de un código Javascript que trabaja con XPCOM, se obtiene:
<?xml version="1.0"?>
<overlay id="sample"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="text/javascript">
function getOS() {
return Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).OS;
}
</script>
<statusbar id="status-bar">
<statusbarpanel id="my-panel" label="OS?" onclick="alert(getOS())" />
</statusbar>
</overlay>
Y si digamos que la función está en un archivo externo que acaba de incluirlo como JavaScript normal
- 1. Compartir datos entre AppDomains
- 2. Compartir datos entre páginas html
- 3. Javascript: compartir datos entre pestañas
- 4. Compartir datos entre procesos en Python
- 5. Compartir datos entre aplicaciones en un iDevice
- 6. Reproducir sonidos en una extensión de Firefox
- 7. localStorage en una extensión de Firefox
- 8. Compartir datos entre actividades y servicios
- 9. ¿Cuál es la diferencia entre una extensión de Firefox y un complemento de Firefox?
- 10. Compartir datos de iCloud entre dos aplicaciones
- 11. Prisma: ¿Compartir datos entre ViewModels cargados en una región?
- 12. Firefox: complemento vs extensión?
- 13. Compartir datos entre controles de usuario
- 14. compartir datos entre dos aplicaciones de iphone
- 15. compartir una base de datos entre el trenzado y Django
- 16. Acceso al sistema de archivos desde la extensión de Firefox
- 17. Inserción CSS con una extensión de Firefox
- 18. Comunicación entre la extensión de Firefox y la página javascript
- 19. XMLHttpRequest en la extensión de Firefox
- 20. Compartir archivos en SVN
- 21. Compartir base de datos entre 2 aplicaciones en Heroku
- 22. Cómo compartir datos entre clases separadas en Java
- 23. Compartir una cookie entre dos sitios web
- 24. cómo compartir una transacción entre varios hilos
- 25. ¿Cómo hacer referencia a un archivo en el directorio de datos de una extensión de Firefox?
- 26. Patrón para compartir datos entre objetos en C++
- 27. ¿Qué base de datos liviana debería usar en una extensión de Firefox?
- 28. Compartir bases de datos sqlite entre múltiples actividades de Android
- 29. Cómo compartir datos de llavero entre aplicaciones de iOS
- 30. Cómo compartir datos entre diferentes hilos En C# usando AOP?
Hola, qué característica de vanilla firefox hace que esta funcionalidad sea posible. ¿Es una función específica o una diferencia en la estructura de la extensión? Gracias. – usertest
Al compilar complementos sin Jetpack, no hay fondo en primer plano para su complemento. Puede acceder a cualquier código JavaScript desde su panel, botón, barra de herramientas, ventana, etc. Y cuando digo alguno me refiero incluso al código de otros complementos, como Firebug ... – mhitza
No estoy usando la versión jetpack. Dijiste que era posible sin jetpack, ¿cómo es eso? Gracias. – usertest