jQuery插件imgPreviewQs实现上传图片预览
上传图片预览,支持IE6、IE7、IE8、IE9、IE10、IE11。火狐、Chrome具体没有测试,但是高版本都支持。
imgPreviewQs.js
/*! 依赖jQuery1.5.2 (c)2016 license:http://www.opensource.org/licenses/mit-license.php */ (function($){ $.fn.imgPreviewQs=function(options){ functionisIE(ver){ varb=document.createElement('b') b.innerHTML='<!--[ifIE'+ver+']><i></i><![endif]-->' returnb.getElementsByTagName('i').length===1; } options=$.extend({},$.fn.imgPreviewQs.defaults,options); var$this=$(this); $this.change(function(){ varregex=/(.*)\.(jpg|jpeg|gif|bmp|png)$/; varval=$this.val(); if(!regex.test(val)){ alert("请选择图片"); returnfalse; } if(browserQs.isIE(8)){ HanderIE789($this); } elseif(window.FileReader){ HanderFileReader($this); } elseif(browserQs.isIE(9)){ HanderIE789($this); } elseif(browserQs.isIE(6)){ HanderOther($this); } elseif(browserQs.isIE(7)){ HanderIE789($this); } else{ $("#"+options.destID).html("浏览器不支持预览图片"); } }); functionHanderFileReader($this){ varoPreviewImg=null,oFReader=newwindow.FileReader(), rFilter=/^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i; oFReader.onload=function(oFREvent) { $("#"+options.destID).html("<imgsrc='"+oFREvent.target.result+"'style='width:100%;height:100%;'/>"); }; varaFiles=$this.get(0).files; if(aFiles.length===0){return;} if(!rFilter.test(aFiles[0].type)){alert("请选择图片");return;} oFReader.readAsDataURL(aFiles[0]); } functionHanderIE789($this){ $("#"+options.destID).css("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src='"+getUrl($this)+"')"); } functionHanderOther($this){ $("#"+options.destID).html("<imgsrc='"+$this.val()+"'style='width:100%;height:100%;'/>"); } functiongetUrl($this){ $this.select(); $this.blur(); varimgSrc=document.selection.createRange().text; document.selection.empty(); returnimgSrc; } }; $.fn.imgPreviewQs.defaults={ destID:"" }; })(jQuery);