Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firefox not able to enumerate document.styleSheets[].cssRules[]

Here is the code:

  • http://jsfiddle.net/salman/2hyYg/
  • http://jsfiddle.net/salman/2hyYg/show/

You'll notice the alert(document.styleSheets[x].cssRules.length) fails with a "security exception". Any workaround for this. I am asking because there are a couple of "CSS lazy loading" classes out there that use this feature to detect if the CSS document is loaded.

Also: is the security exception a correct behavior/does it conform to standards?

like image 878
Salman A Avatar asked Mar 16 '11 09:03

Salman A


2 Answers

You can get that error when trying to read a stylesheet loaded from a different domain or server, or trying to read an @import rule.

For your purpose, just check the document.styleSheets.length .

like image 129
kennebec Avatar answered Oct 15 '22 15:10

kennebec


As of 2013, you can set the "crossorigin" attribute on the <link>-Element to signal the browser that this CSS is trusted (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link).

After that, you can access its rules via Javascript.

like image 23
Johannes Jander Avatar answered Oct 15 '22 16:10

Johannes Jander