How to fix the transparent png problem with Internet Explorer
In Internet Explorer 6 and below, transparent png files do not show correctly. The transparent part of the png is not transparent but a solid color. The following JavaScript will allow Internet Explorer to display the png file correctly.
The browser detect JavaScript is required for this script to work.
Copy this script and create a file in your JavaScript folder and name it transparent_png.js.
JavaScript Snippet function correctPNG() { if (BrowserDetect.browser == "Explorer") { if (BrowserDetect.version <= 6.9) { for(var i=0; i<document.images.length; i++) { var img = document.images[i] var imgName = img.src.toUpperCase() if (imgName.substring(imgName.length-3, imgName.length) == "PNG") { var imgID = (img.id) ? "id='" + img.id + "' " : "" var imgClass = (img.className) ? "class='" + img.className + "' " : "" var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' " var imgStyle = "display:inline-block;" + img.style.cssText if (img.align == "left") imgStyle = "float:left;" + imgStyle if (img.align == "right") imgStyle = "float:right;" + imgStyle if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" img.outerHTML = strNewHTML i = i-1 } } } } }
function%20correctPNG%28%29%20%7B%0D%0A%20%20if%20%28BrowserDetect.browser%20%3D%3D%20%22Explorer%22%29%20%7B%0D%0A%20%20%20%20if%20%28BrowserDetect.version%20%3C%3D%206.9%29%20%7B%0D%0A%20%20%20%20%20%20for%28var%20i%3D0%3B%20i%3Cdocument.images.length%3B%20i%2B%2B%29%20%7B%0D%0A%20%20%20%20%20%20%20%20var%20img%20%3D%20document.images%5Bi%5D%0D%0A%20%20%20%20%20%20%20%20var%20imgName%20%3D%20img.src.toUpperCase%28%29%0D%0A%20%20%20%20%20%20%20%20if%20%28imgName.substring%28imgName.length-3%2C%20imgName.length%29%20%3D%3D%20%22PNG%22%29%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20var%20imgID%20%3D%20%28img.id%29%20%3F%20%22id%3D%27%22%20%2B%20img.id%20%2B%20%22%27%20%22%20%3A%20%22%22%0D%0A%20%20%20%20%20%20%20%20%20%20var%20imgClass%20%3D%20%28img.className%29%20%3F%20%22class%3D%27%22%20%2B%20img.className%20%2B%20%22%27%20%22%20%3A%20%22%22%0D%0A%20%20%20%20%20%20%20%20%20%20var%20imgTitle%20%3D%20%28img.title%29%20%3F%20%22title%3D%27%22%20%2B%20img.title%20%2B%20%22%27%20%22%20%3A%20%22title%3D%27%22%20%2B%20img.alt%20%2B%20%22%27%20%22%0D%0A%20%20%20%20%20%20%20%20%20%20var%20imgStyle%20%3D%20%22display%3Ainline-block%3B%22%20%2B%20img.style.cssText%20%0D%0A%20%20%20%20%20%20%20%20%20%20if%20%28img.align%20%3D%3D%20%22left%22%29%20imgStyle%20%3D%20%22float%3Aleft%3B%22%20%2B%20imgStyle%0D%0A%20%20%20%20%20%20%20%20%20%20if%20%28img.align%20%3D%3D%20%22right%22%29%20imgStyle%20%3D%20%22float%3Aright%3B%22%20%2B%20imgStyle%0D%0A%20%20%20%20%20%20%20%20%20%20if%20%28img.parentElement.href%29%20imgStyle%20%3D%20%22cursor%3Ahand%3B%22%20%2B%20imgStyle%0D%0A%20%20%20%20%20%20%20%20%20%20var%20strNewHTML%20%3D%20%22%3Cspan%20%22%20%2B%20imgID%20%2B%20imgClass%20%2B%20imgTitle%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%20style%3D%5C%22%22%20%2B%20%22width%3A%22%20%2B%20img.width%20%2B%20%22px%3B%20height%3A%22%20%2B%20img.height%20%2B%20%22px%3B%22%20%2B%20imgStyle%20%2B%20%22%3B%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22filter%3Aprogid%3ADXImageTransform.Microsoft.AlphaImageLoader%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%28src%3D%5C%27%22%20%2B%20img.src%20%2B%20%22%5C%27%2C%20sizingMethod%3D%27scale%27%29%3B%5C%22%3E%3C%2Fspan%3E%22%20%0D%0A%20%20%20%20%20%20%20%20%20%20img.outerHTML%20%3D%20strNewHTML%0D%0A%20%20%20%20%20%20%20%20%20%20i%20%3D%20i-1%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%0D%0A%7D
To activate the JavaScript for your web page you must first reference both the browser_detect.js scipt and the transparent_png.js script from the HTML header, ensuring you use the appropriate path to the scripts. You must also include the onload event for the correctPNG function.
HTML Snippet <head> <script type="text/javascript" src="/includes/js/browser_detect.js"></script> <script type="text/javascript" src="/includes/js/transparent_png.js"></script> <script type="text/javascript">window.attachEvent("onload", correctPNG);</script> </head>
%3Chead%3E%0D%0A%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22%2Fincludes%2Fjs%2Fbrowser_detect.js%22%3E%3C%2Fscript%3E%0D%0A%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22%2Fincludes%2Fjs%2Ftransparent_png.js%22%3E%3C%2Fscript%3E%0D%0A%3Cscript%20type%3D%22text%2Fjavascript%22%3Ewindow.attachEvent%28%22onload%22%2C%20correctPNG%29%3B%3C%2Fscript%3E%0D%0A%3C%2Fhead%3E
Please login or register to add comments |