2012-05-17 2 views
5

Gemäß dieser Site externalcss3 Das CSS Rule-Objekt des styleSheet-Objekts ermöglicht den Zugriff auf die einzelnen Regeln eines Stylesheets.Das CSS-Regelobjekt

Also, wenn ich versuche, dieses Stück Code (*) auf stackoverflow Seite mit der Javascript-Konsole zu starten, erwarte ich, dass einige CSS-Regeln auf dieser Seite http://cdn.sstatic.net/stackoverflow/all.css?v=04e0337352b3 geschrieben werden.

(*)

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

eigentlich das Ergebnis console.log ist etwas anderes, als was ich erwarten würde:

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"] 

Was habe ich verpasst? Entschuldige meine Unwissenheit und deine Zeit.

+1

Ich finde eigentlich, dass keine Regeln in der nur Sheet gibt es (0). Immer noch komisch. – Marcin

+1

(Oder ein Sicherheitsfehler in Firefox - noch seltsamer!) – Marcin

+0

Ich wette, das Stylesheet, das Sie sehen, wird von einer Browser-Erweiterung injiziert ... etwas wie adblock, vielleicht (außer adblock legt das Stylesheet am Ende, muss also etwas sein sonst). –

Antwort

5

Es scheint, dass Sie nur auf die Regeln in der CSS-Datei zugreifen können, wenn sie aus derselben Domäne stammen.

diesen Thread gelesen: Reading the rules of a cross domain CSS file in DOM

+0

Definitiv korrekt, obwohl ich neugierig bin, warum das OP überhaupt irgendwelche Regeln lesen konnte. – apsillers

+0

@apsillers - Ich habe keine Ahnung. Ich bekomme einen TypeError korrekt: 'Kann Eigenschaft 'length' von null nicht lesen. –

Verwandte Themen