Estoy escribiendo una extensión de Firefox y estoy usando su Add-on SDK; pero no puedo imaginar cómo inyectar un archivo CSS local desde la carpeta de datos a la página web. Sería genial si hubiera una forma de hacerlo a través del paquete page_mod
.Inyectar un archivo CSS en una página web a través de la extensión de Firefox
Respuesta
A partir del Add-on SDK 1.14 no experimental (API puede cambiar) el apoyo para esto en el módulo page-mod:
var pageMod = require("sdk/page-mod").PageMod({
include: "*",
contentStyleFile: require("sdk/self").data.url("my-style.css")
});
Ver Modifying Web Pages Based on URL para una guía elaborada para el uso de la página-mod.
Hay a page on the Addon SDK's wiki discutiendo problemas con la implementación actual, aunque parece un poco desactualizado.
Debajo del capó se usa nsIDOMWindowUtils .loadSheet() para agregar la hoja de estilo sin tocar el DOM de la página. (Esta API se añadió en Firefox 18, ver bug 737003. Antes de que se tenía que utilizar nsIStyleSheetService que era similar, pero no-ficha específica.)
Antes de que se puede utilizar el script de contenido la de la página-mod para insertar el elemento de enlace o estilo (example). [edit] gracias al comentario de lwburk, aquí hay una descripción elaborada más elaborada en Greasemonkey Hacks: Tips & Tools for Remixing the Web with Firefox By Mark Pilgrim: "Alter a Page's Style" section.
Para insertar CSS de main.js ahora se puede utilizar "página-mod":
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*.org",
contentStyleFile: data.url("my-page-mod.css")
});
¡Gracias por mencionar esto! Actualicé mi respuesta para la versión más reciente del Addon SDK. – Nickolay
- 1. ¿Cómo puede una extensión de Firefox inyectar un archivo css local en una página web?
- 2. Inserción CSS con una extensión de Firefox
- 3. Inyectar CSS para la extensión de cromo
- 4. Rendimiento de imagen en movimiento en la página web a través de CSS vs HTML5 Canvas
- 5. Cómo inyectar CSS utilizando el archivo de script de contenido en la extensión de Chrome?
- 6. Agregue css dinámicamente a la página a través de javascript
- 7. Android - Cómo inyectar CSS personalizado en la página web externa en vista web
- 8. Comunicación entre la extensión de Firefox y la página javascript
- 9. localStorage en una extensión de Firefox
- 10. ¿Cómo hacer referencia a un archivo en el directorio de datos de una extensión de Firefox?
- 11. Inyectar Javascript en una página de una extensión de Chrome: ¿problema de concurrencia?
- 12. Descargar CSS de la página web
- 13. ¿El equivalente a un script de contenido en una extensión de Firefox?
- 14. ¿Complemento de Firefox que descarga una página web completa?
- 15. cómo llamar a una función en la extensión de Firefox desde un botón html
- 16. Reproducir sonidos en una extensión de Firefox
- 17. Cargar archivo CSS adicional a través del complemento de navegador?
- 18. ¿Cómo configurar la página web predeterminada a través de htaccess?
- 19. Incluye: css con extensión de archivo php?
- 20. ¿Cómo se manipula el texto seleccionado a través de una extensión de Firefox?
- 21. Web Forms de ASP.NET: archivo de página maestra y CSS
- 22. Firefox difumina una imagen cuando se escala a través de CSS externo o estilo en línea.
- 23. ¿Cómo ejecuto una función de JavaScript definida por la página desde una extensión de Firefox?
- 24. Cómo estirar una cabecera a través de un fondo de páginas web con CSS
- 25. Extracción título de la página y la fecha cuando se imprime la página web (con CSS?)
- 26. ¿Cómo inyectar JQuery en una página existente dentro de UIWebView?
- 27. Migración de la extensión de Chrome a Firefox
- 28. Cancelar una solicitud HTTP GET de la extensión de Firefox
- 29. ¿Hay una extensión para Firefox (o cualquier otro navegador) que permita enviar datos POST arbitrarios a una página web?
- 30. Cómo codificar la extensión de Firefox que ejecuta el código de JavaScript en el contexto de la página como firebug
Es imposible para mí utilizar XPCOM Desde que estoy usando el SDK AppBuilder – italiano40
@ italiano40: mantener referencia " SDK de desarrollador ". Si se refiere al SDK complementario, utilice el término correcto. Es posible utilizar los componentes de XPCOM en el SDK adicional ('require ('chrome')'), aunque es un tema avanzado e invalidará las garantías de compatibilidad de versiones anteriores que normalmente proporciona el complemento SDK. – Nickolay
Ver también: http://books.google.com/books?id=KWRE2C_S4YsC&pg=PA19&lpg=PA19&dq=mark+pilgrim+add+Global+Style&source=bl&ots=SnfX5Ad2WO&sig=CKoF9A0Ala96vphTeU4mK2dbMe4&hl=en&ei=GJ3iTpeJKKK2sQLBkMDvBQ&sa=X&oi=book_result&ct=result&resnum= 1 & ved = 0CCQQ6AEwAA # v = onepage & q & f = false –