Revision: 11624
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 11, 2009 16:17 by johnloy
Initial Code
/* State Scope JS. Usage description at http://www.sitepoint.com/article/image-replacement-state-scope/ */ /* Minified */ (function(){d=document;e=d.documentElement;c="images-on";i=new Image();t=i.style;s=d.enableStateScope=function(s,o){if(o)e.className+=" "+s;else e.className=e.className.replace(new RegExp("\\b"+s+"\\b"),"");};if(t.MozBinding!=null){t.backgroundImage="url("+d.location.protocol+"//0)";b=window.getComputedStyle(i,'').backgroundImage;if(b!="none"&&b!="url(invalid-url:)"||d.URL.substr(0,2)=="fi")s(c,true);}else{t.cssText="-webkit-opacity:0";if(t.webkitOpacity==0){i.onload=function(){s(c,i.width>0);};i.src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";}else{i.onerror=function(){s(c,true);};i.src="about:blank";}}})(); /* Full */ // Don't copy and paste this code, use the minified script document.enableStateScope = function(scope, on) { var de = document.documentElement; if (on) de.className += " " + scope; else de.className = de.className.replace( new RegExp("\\b" + scope + "\\b"), ""); }; (function() { var de = document.documentElement; var img = new Image(); // Handling for Gecko browsers if (img.style.MozBinding != null) { img.style.backgroundImage = "url(" + document.location.protocol + "//0)"; var bg = window.getComputedStyle(img, '').backgroundImage; // When images are off, Firefox 2 and lower reports "none" // Firefox 3 and higher reports "url(invalid-url:)" // Also, always show images for local files in Firefox if (bg != "none" && bg != "url(invalid-url:)" || document.URL.substr(0, 2) == "fi") { document.enableStateScope("images-on", true); } } else { // Handling for Safari (including iPhone) img.style.cssText = "-webkit-opacity:0"; if (img.style.webkitOpacity == 0) { img.onload = function() { // Only enable the state scope if the width // of the image is greater than 0. document.enableStateScope("images-on", img.width > 0); } // Source the image to a 43-byte 1x1 pixel GIF image encoded as a data URI. img.src = "data:image/gif;base64," + "R0lGODlhAQABAIAAAP///wAAACH5BAE" + "AAAAALAAAAAABAAEAAAICRAEAOw=="; } // Handling for everything else else { img.onerror = function(e) { document.enableStateScope("images-on", true); } img.src = "about:blank"; } } } )();
Initial URL
Initial Description
Initial Title
State Scope switching Javascript
Initial Tags
css, javascript, textmate
Initial Language
Other