用 javascript 修复 IE 下 PNG 图片不能透明显示的方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" c />
<meta name="keywords" c />
<meta name="description" c />
<title>用 javascript 修复 IE 下 PNG 图片不能透明显示的方法 - PNG, 透明, IE, 可携式网络图像, </title>
</head>
<body>
<div id="example">
<h3 id="example_title">&nbsp;javascript&nbsp;修复&nbsp;IE&nbsp;下&nbsp;PNG&nbsp;图片不能透明显示的方法</h3>
<div id="example_main">
<script type="text/javascript">
// 修复 IE 下 PNG 图片不能透明显示的问题
function fixPNG(myImage)
{
var arVersion 
= navigator.appVersion.split("MSIE");
var version 
= parseFloat(arVersion[1]);
if ((version >= 5.5&& (version < 7&& (document.body.filters))
{
var imgID 
= (myImage.id) ? "id='" + myImage.id + "" : "";
var imgClass 
= (myImage.className) ? "class='" + myImage.className + "" : "";
var imgTitle 
= (myImage.title) ? "title='" + myImage.title  + "" : "title='" + myImage.alt + "";
var imgStyle 
= "display:inline-block;" + myImage.style.cssText;
var strNewHTML 
= "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + myImage.width
+ "px; height:" + myImage.height
+ "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>";
myImage.outerHTML = strNewHTML;
}

}

</script>
未经处理的 PNG 显示效果
<br />
<img src="/upload/remotupload/2007112023244413.png" alt="PNG" style="border:1px solid #999;" />
<br />
修复后的 PNG 显示效果
<br />
<img src="/upload/remotupload/2007112023244413.png" alt="PNG" style="border:1px solid #999;"  />
<br />
<br />
<span class="warn">(注:只有在 IE 下 PNG 的图片才是不透明效果,本例只针对 IE 浏览器)</span>
</div>
</div>
<br />
</body>
</html>
posted @ 2008-02-14 19:02  龍峸.大卫  阅读(414)  评论(0编辑  收藏  举报