2012-05-17 22 views
5

Secondo questo sito externalcss3 L'oggetto della regola CSS dell'oggetto styleSheet consente di accedere alle singole regole di un foglio di stile.Oggetto della regola CSS

Quindi, se provo a eseguire questo pezzo di codice (*) sulla pagina StackOverflow, utilizzando la console javascript, mi aspetto di vedere alcune regole CSS scritte in questa pagina http://cdn.sstatic.net/stackoverflow/all.css?v=04e0337352b3.

(*)

var mysheet=document.styleSheets[0] 
var myrules=mysheet.cssRules? mysheet.cssRules: mysheet.rules 
for (i=0; i<myrules.length; i++) { 
    console.log(myrules[i].selectorText.toLowerCase()); 
} 

realtà il risultato di console.log è qualcosa di diverso da quello che ci si aspetterebbe:

object[type="application/x-shockwave-flash"], object[type="application/futuresplash"], object[data*=".swf"], object[src*=".swf"], embed[type="application/x-shockwave-flash"], embed[type="application/futuresplash"], embed[src*=".swf"] 

Che cosa ho mancato? Scusa per la mia ignoranza e il tuo tempo.

+1

in realtà ho scoperto che non ci sono regole nel solo foglio di stile (0). Ancora strano – Marcin

+1

(O un errore di sicurezza in Firefox - anche sconosciuto!) – Marcin

+0

Scommetto che il foglio di stile che stai vedendo viene iniettato da un'estensione del browser ... qualcosa come adblock, forse (ad eccezione che adblock mette il foglio di stile alla fine, quindi deve essere qualcosa altro). –

risposta

5

Sembra che sia possibile accedere alle regole nel file CSS solo se provengono dallo stesso dominio.

letto questa discussione: Reading the rules of a cross domain CSS file in DOM

+0

Definitivamente corretto, anche se sono curioso del perché l'OP possa leggere qualsiasi regola. – apsillers

+0

@apsillers - Non ne ho idea. Ottengo correttamente un errore TypeE: 'Impossibile leggere la proprietà 'length' di null'. –

Problemi correlati