2010-04-28 7 views
15

Estoy escribiendo una extensión de Firefox que necesita para inyectar un archivo css en páginas web. El archivo CSS se incluye con la extensión, por lo que puede acceder a él mediante una URL chrome¿Cómo puede una extensión de Firefox inyectar un archivo css local en una página web?

chrome://extensionid/content/skin/style.css 

Estoy tratando de inyectar css así cuando se carga la página:

var fileref = document.createElement("link"); 
fileref.setAttribute("rel", "stylesheet"); 
fileref.setAttribute("type", "text/css"); 
fileref.setAttribute("href", "chrome://extensionid/content/skin/style.css"); 
document.getElementsByTagName("head")[0].appendChild(fileref); 

Sin embargo, el css no está cargado y Firebug muestra el mensaje 'URL de Chrome filtrada' en lugar del contenido del archivo, cuando inspecciono el elemento link que creé. Si trato de cargar este archivo css desde un servidor externo, todo está bien.

¿Hay alguna manera de cargar un archivo css junto con la extensión?

Respuesta

16

Use resource: en lugar de chrome:?

+0

Gracias, no sabía de recursos :. Parece que es lo que necesito. –

+2

Publiqué algunos antecedentes sobre por qué esta es la respuesta correcta en http://stackoverflow.com/questions/2685243/inserting-css-with-a-firefox-extension/5395489#5395489 – studgeek

+0

¿Alguien puede confirmar si Firefox todavía admite este acceso? ¿mecanismo? He pasado horas en esto y en todos los casos, la última versión de Firefox se niega a permitir que el contenido de la página acceda a los elementos expuestos con un alias de recursos en el manifiesto. Del mismo modo, la navegación directa a resource: // alias/uri/to/file falla sin errores observables. Si todavía funciona, ¿quizás un ejemplo un poco más detallado podría resolver la confusión? –

Cuestiones relacionadas