2010-04-28 16 views
15

Sto scrivendo un'estensione per Firefox che deve iniettare un file css nelle pagine web. Il file css è fornito in bundle con l'estensione, così posso accedervi utilizzando un URL di cromoIn che modo un'estensione di Firefox può iniettare un file css locale in una pagina Web?

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

sto cercando di iniettare css come questo, quando la pagina viene caricata:

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); 

Tuttavia, il css non è caricato e Firebug mostra il messaggio 'Chrome chrome url' al posto del contenuto del file, quando ispeziono l'elemento link che ho creato. Se provo a caricare questo file css da un server esterno, va tutto bene.

C'è un modo per caricare un file css in bundle con l'estensione?

risposta

16

Utilizzare resource: anziché chrome:?

+0

Grazie, non sapevo di risorse :. Sembra che sia quello di cui ho bisogno. –

+2

Ho pubblicato alcuni sfondi sul motivo per cui questa è la risposta giusta su http://stackoverflow.com/questions/2685243/inserting-css-with-a-firefox-extension/5395489#5395489 – studgeek

+0

Qualcuno può confermare se Firefox supporta ancora questo accesso meccanismo? Ho passato ore su questo e in tutti i casi l'ultima versione di Firefox si rifiuta di consentire al contenuto della pagina di accedere agli elementi esposti con un alias di risorse nel manifest. Allo stesso modo, navigando direttamente alla risorsa: // alias/uri/to/file fallisce senza errori osservabili. Se funziona ancora, forse un esempio leggermente più dettagliato potrebbe risolvere la confusione? –

Problemi correlati