2012-05-17 13 views
5

Según este sitio externalcss3 El objeto de regla CSS del objeto styleSheet le permite acceder a las reglas individuales de una hoja de estilo.Objeto de regla CSS

Así que si trato de ejecutar este fragmento de código (*) en la página de stackoverflow, utilizando la consola de JavaScript, espero ver algunas reglas de CSS escritas en esta página 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()); 
} 

En realidad el resultado de console.log es algo diferente de lo que se espera:

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

Qué me he perdido? Perdón por mi ignorancia y tu tiempo.

+1

De hecho, me parece que no hay reglas en la única hoja de estilo (0). Aún extraño. – Marcin

+1

(O un error de seguridad en Firefox, incluso más extraño!) – Marcin

+0

Apuesto a que la hoja de estilo que está viendo está siendo inyectada por una extensión de navegador ... algo así como adblock, tal vez (excepto que adblock pone la hoja de estilo al final, debe ser algo más). –

Respuesta

5

Parece que solo puede acceder a las reglas en el archivo CSS si son del mismo dominio.

Leer este tema: Reading the rules of a cross domain CSS file in DOM

+0

Definitivamente correcto, aunque tengo curiosidad sobre por qué el OP podría leer alguna regla. – apsillers

+0

@apsillers - No tengo ni idea. Obtuve correctamente un TypeError: 'No se puede leer la propiedad 'length' de null'. –

Cuestiones relacionadas