Javascript für PNG-Nutzung auf IE 6 - Fehler

joel-87

Lt. Commander
Registriert
Sep. 2006
Beiträge
1.521
Hallo,
ich möchte meine Webseite für IE, FF und Opera optimieren. Nun bin ich auf das Problem mit der PNG Darstellung beim IE 6 gekommen. Ich konnte es mit einem Javascript lösen (aus dem www), jedoch werden jetzt die PNGs bei OPERA ausgeblendet. Könnt ihr bitte einmal über den Code schauen und evtl. so optimieren, dass es auch in OPERA funktioniert.

Bitte Bitte

PHP:
<script type="text/javascript">
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.
   {
   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
	     }
      }
   }
window.attachEvent("onload", correctPNG);
</script>
 
Du kannst das Script über ein Conditional Comment nur für ältere IE-Versionen ausführen lassen:

HTML:
<!--[if lte IE 6]>
  <script type="text/javascript">
    ...
  </script>
<![endif]-->


Das bewirkt beispielsweise, dass das Script nur im IE kleiner gleich Version 6 ausgeführt wird (lte = less-than or equal). Für alle anderen Browser ist es ein normaler Kommentar, der ignoriert wird.
 
Zuletzt bearbeitet:
Zurück
Oben