MOVED domains/cubic.com.js to domains/remove_print_css.js
authorAlan Knowles <alan@roojs.com>
Thu, 14 Apr 2016 04:20:43 +0000 (12:20 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 14 Apr 2016 04:20:43 +0000 (12:20 +0800)
domains/remove_print_css.js [new file with mode: 0644]

diff --git a/domains/remove_print_css.js b/domains/remove_print_css.js
new file mode 100644 (file)
index 0000000..d679230
--- /dev/null
@@ -0,0 +1,72 @@
+
+(function (args) {
+     
+    
+    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;
+        }
+        if (node.nodeName == 'LINK' && node.getAttribute('media') && node.getAttribute('media').match(/print/)) {
+            node.setAttribute('href' , '');
+            node.setAttribute('media' , 'speech');
+            continue;
+        }
+        
+        // now we are dealing with non-print styles...
+        
+        var ar = document.styleSheets[ss].rules;
+        if (!ar) {
+            if (node.nodeName == 'STYLE' ) {
+                node.innerHTML = '';
+                continue;
+            }
+            node.setAttribute('href' , '');
+            continue;
+        }
+        
+        var newsheet = '';
+        
+        
+        for(i=0; i < ar.length; i++){
+            if(ar[i].cssText.indexOf("@media") < 0 ) {
+                newsheet += ar[i].cssText +"\n";
+                continue;
+            }
+            //console.log(ar[i].cssText);
+            if(ar[i].cssText.match(/@media\s+print/)) {
+                continue;
+            }
+            
+            // see if getting rid of 'only' from screen works.
+            if(!ar[i].cssText.match(/only\s+screen/)) {
+                newsheet += ar[i].cssText +"\n";
+                continue;   
+            }
+            var str = ar[i].cssText.replace(/only\s+screen/, 'screen');
+            newsheet += str +"\n";
+            
+            
+        }
+        
+        
+        if (node.nodeName == 'STYLE' ) {
+            node.innerHTML = newsheet;
+            continue;
+        }
+        var newnode = document.createElement('STYLE');
+        newnode.innerHTML = newsheet;
+        node.parentNode.replaceChild(newnode,node);
+        
+        
+    
+    }
+
+    
+    
+})(); 
\ No newline at end of file