domains/remove_print_css.js
[app.webkitpdf] / domains / remove_print_css.js
index d679230..b2e7d65 100644 (file)
@@ -1,13 +1,14 @@
 
 (function (args) {
-     
     
+    var i;
+    var del = [];
     for (var ss = 0; ss < document.styleSheets.length; ss++) {
         var css =document.styleSheets[ss];
         console.log("sheet " + ss + '/' + document.styleSheets.length + ": " + css.ownerNode.outerHTML) ;
         
         var node = css.ownerNode;
-         ;
+        
         if (node.nodeName == 'STYLE' && node.getAttribute('media') && node.getAttribute('media').match(/print/)) {
             node.innerHTML = '';
             continue;
         }
         
         // now we are dealing with non-print styles...
-        
-        var ar = document.styleSheets[ss].rules;
+        try {
+            var ar = document.styleSheets[ss].rules;
+        } catch(e) {
+            console.log("could not access stylesheet:" + ss);
+            continue;
+        }
         if (!ar) {
-            if (node.nodeName == 'STYLE' ) {
-                node.innerHTML = '';
-                continue;
-            }
-            node.setAttribute('href' , '');
+            del.push(node);
             continue;
         }
         
             }
             
             // see if getting rid of 'only' from screen works.
-            if(!ar[i].cssText.match(/only\s+screen/)) {
-                newsheet += ar[i].cssText +"\n";
+            if(ar[i].cssText.match(/only\s+screen/)) {
+                var str = ar[i].cssText.replace(/only\s+screen/, '');
+                newsheet += str +"\n";
+                continue;   
+            }
+            if(ar[i].cssText.match(/screen\s+and/)) {
+                var str = ar[i].cssText.replace(/screen\s+and/, '');
+                newsheet += str +"\n";
                 continue;   
             }
-            var str = ar[i].cssText.replace(/only\s+screen/, 'screen');
-            newsheet += str +"\n";
+            newsheet += ar[i].cssText +"\n";
+                
+            
             
             
         }
         newnode.innerHTML = newsheet;
         node.parentNode.replaceChild(newnode,node);
         
-        
     
     }
+    for(i = 0; i < del.length;i++) {
+        del[i].parentNode.removeChild(del[i]);
+    }