ie6 - png 투명 해결 (ietester 의 ie6 에 문제 가 있 고 원생 ie6 는 문제 가 없습니다)

4577 단어 test
//     ie6!           



 var FixMSIEPng = (function () {

    if (!document.body.filters) {

        //   MSIE

        return;

    }

    if (7 <= parseFloat(navigator.appVersion.split('MSIE')[1])) {

        //   IE7.0      

        return;

    }



    /*

                     

                    

     */

    function addFilter(e) {

        //        style  ,    background

        //           

        if (e.style && e.style.background && !e.style.filter) {

            var src = null;

            if (src = e.style.backgroundImage.match(/^url\(\"?(.*\.png)\"?\)$/i)) {

                e.style.backgroundColor = 'transparent';

                e.style.backgroundImage = 'url()';

                e.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''

                    + src[1]

                    + '\',sizingMethod=\''

                    + ((e.style.width && e.style.height) ? 'scale' : 'crop')

                    + '\')';

            }

        }

    }



    //              

    //  addFilters()        

    function processRules(styleSheet) {

        for (var i in styleSheet.rules) {

            addFilter(styleSheet.rules[i]);

        }



        //    @import     stylesheets

        if (styleSheet.imports) {

            for (var j in styleSheet.imports) {

                processRules(styleSheet.imports[j]);

            }

        }

    }



    var Obj = function () {

        this.init();

    };

    Obj.fixedImg=function(){

        if (document.images) {

            var images = document.images;

            var img = null;



            for (var i = images.length - 1; img = images[i]; i--) {

                //      PNG  

                if (img.src && img.src.substring(img.src.length - 3,

                    img.src.length).toLowerCase() !== 'png') {

                    //   

                    continue;

                }



                //        style  

                var inlineStyle = '';

                if (img.align === 'left' || img.align === 'right') {

                    inlineStyle += 'float:' + img.align + ';';

                }

                if (img.parentElement.nodeName.toUpperCase() === 'A') {

                    //                

                    inlineStyle += 'cursor: pointer;';

                }



                //  display   inline-block    width

                //  height  ,         

                inlineStyle += 'display:inline-block;';



                //             css  

                if (img.style && img.style.cssText) {

                    inlineStyle += img.style.cssText;

                }



                //            ( className

                //  ID) <span>        

                img.outerHTML = '<span ' + (img.id ? ' id="' + img.id + '"' : '')

                    + (img.className ? ' class="' + img.className + '" ' : '')

                    + ' style="width:' + img.width + 'px;height:' + img.height + 'px;'

                    + inlineStyle

                    + ';filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''

                    + img.src

                    + '\', sizingMethod=\'scale\');"></span>';

            }

        }

    };



    /**

     *        

     */

    Obj.fixedLinkStyle=function(){

        var styleSheets = document.styleSheets;

        for (var i = 0, len = styleSheets.length; i < len; i++) {

            processRules(styleSheets[i]);

        }

    };



    /**

     *          

     */

    Obj.fixedInlineStyle=function(){

        if (document.all) {

            var all = document.all;

            for (var i = 0, len = all.length; i < len; i++) {

                addFilter(all[i]);

            }

        }

    };

    

    Obj.prototype = {

        constructor: Obj,

        init: function () {

            if (window.attachEvent) {

                window.attachEvent('onload', function () {

                    Obj.fixedImg();

                    Obj.fixedLinkStyle();

                    Obj.fixedInlineStyle();

                });

            }

        }

    };



    return new Obj();

})();


좋은 웹페이지 즐겨찾기