IE浏览器上传图片预览兼容(IE 7 8 9 10 11)

Posted 拾诚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE浏览器上传图片预览兼容(IE 7 8 9 10 11)相关的知识,希望对你有一定的参考价值。

 $("#file_upload").change(function () {
                var $file = $(this);
                var fileObj = $file[0];
                var windowURL = window.URL || window.webkitURL;
                var dataURL;
                var $img = $("#preview");
                if (fileObj && fileObj.files && fileObj.files[0]) {
                    dataURL = windowURL.createObjectURL(fileObj.files[0]);
                    $img.attr(src, dataURL);
                } else {

                    dataURL = $file.val();
                    // $img.css("filter",‘progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale,src="‘ + dataURL + ‘")‘);
                    // var imgObj = document.getElementById("preview");
                    // imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\"" + dataURL + "\")";
                    // imgObj.style.width = "48px";
                    // imgObj.style.height = "48px";
                    var imgObj = document.getElementById("preview");

                    // 两个坑:
                    // 1、在设置filter属性时,元素必须已经存在在DOM树中,动态创建的Node,也需要在设置属性前加入到DOM中,先设置属性在加入,无效;
                    // 2、src属性需要像下面的方式添加,上面的两种方式添加,无效;
                    imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                    imgObj.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = dataURL;
                }

            });


前端代码:

    <input id="file_upload" type="file" />
    <div class="image_container" id="previewDIV">
      <img id="preview" width="200" height="200" alt="没有图片">
    </div>

 

 

以上是关于IE浏览器上传图片预览兼容(IE 7 8 9 10 11)的主要内容,如果未能解决你的问题,请参考以下文章

分享兼容ie6-9和现代浏览器以及ios,android,pad等触屏设备的异步文件上传插件

原生js上传 加预览 兼容ie

JS兼容各个浏览器的本地图片上传即时预览效果

前端图片预览,上传前预览,兼容IE7891011,Firefox,Chrome

官方demo修改后的webuploader上传预览图片(兼容IE8) github下载回来的有问题

IE6,7,8,9还有火狐浏览器的兼容