Jsを使用してIEにpng画像の透明効果をサポートさせる

2765 ワード

var arVersion = navigator.appVersion.split("MSIE")

var version = parseFloat(arVersion[1])

function fixPNG(myImage)
{

    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   

    }

}

使用方法:
テンプレートのセグメントに[パスに注意]を付ける
<!--[if lt IE 7]>

<script defer type="text/javascript" src="pngfix.js"></script>

<![endif]-->

透明なpngの場所のフォーマットは:
<img src="xyz.png" alt="foo" width="10" height="20" onload="fixPNG(this)">

注意して、あなたの画像の高さと幅は取り除くことができません!多すぎるonload="fixpng(this)".