mediawiki.inspect: Support IE8's style.sheet.rules property
authorBartosz Dziewoński <matma.rex@gmail.com>
Thu, 24 Oct 2013 19:31:49 +0000 (21:31 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Thu, 24 Oct 2013 20:01:23 +0000 (22:01 +0200)
Standards-compliant browsers use 'cssRules', IE8 uses 'rules',
some browsers (e.g. Chrome) support both.

Bug: 56107
Change-Id: Ief0b5e38c8ff29efea510bf3725127c2bbfccd59

resources/mediawiki/mediawiki.inspect.js

index c895adf..346e783 100644 (file)
                 */
                auditSelectors: function ( css ) {
                        var selectors = { total: 0, matched: 0 },
-                               style = document.createElement( 'style' );
+                               style = document.createElement( 'style' ),
+                               sheet, rules;
 
                        style.textContent = css;
                        document.body.appendChild( style );
-                       $.each( style.sheet.cssRules, function ( index, rule ) {
+                       // Standards-compliant browsers use .sheet.cssRules, IE8 uses .styleSheet.rules…
+                       sheet = style.sheet || style.styleSheet;
+                       rules = sheet.cssRules || sheet.rules;
+                       $.each( rules, function ( index, rule ) {
                                selectors.total++;
                                if ( document.querySelector( rule.selectorText ) !== null ) {
                                        selectors.matched++;