jquery.uploadpreview.js文件大小限止,兼容ie8,safari9,对源码做了点修改
来源:互联网 发布:快思聪中控编程教程 编辑:程序博客网 时间:2024/06/15 12:19
<pre name="code" class="javascript">function readyImage(url,callback){ var img = new Image(); img.src=url;if(img.complete){ var imgWh = [img.width,img.height];callback(i,imgWh);}else{img.onload = function(){var imgWh = [img.width,img.height];callback(i,imgWh);}}}(function($) { jQuery.fn.extend({ uploadPreview: function(opts) { opts = jQuery.extend({ width: 0, height: 0, imgDiv: opts.imgDiv || "#imgDiv", imgType: ["gif", "jpeg", "jpg", "bmp", "png"], maxwidth: 0, maxheight: 0, imgurl: null, maxed: false, callback: function() { return false; } }, opts || {}); var _self = this; var _this = $(this);if (window.navigator.userAgent.indexOf("MSIE") >= 1 && ($.browser.version == "7.0" || $.browser.version == "8.0") ) {//兼容ie8或以下_this.after("<input type='text' placeholder='ie8' style='width:0px;'>");} var imgDiv = $(opts.imgDiv);imgDiv.css({'overflow':'hidden','width':opts.width+'px','height':opts.height+'px'}); //imgDiv.width(opts.width); //imgDiv.height(opts.height); autoScaling = function() { var img_width = imgDiv.width(); var img_height = imgDiv.height(); if (img_width > 0 && img_height > 0) { var rate = (opts.width / img_width < opts.height / img_height) ? opts.width / img_width : opts.height / img_height; if (rate <= 1) { imgDiv.width(img_width * rate); imgDiv.height(img_height * rate); } else { // imgDiv.css('width','80px'); // imgDiv.css('height','80px'); imgDiv.width(img_width); imgDiv.height(img_height); } var left = (opts.width - imgDiv.width()) * 0.5; var top = (opts.height - imgDiv.height()) * 0.5; //imgDiv.css({ "margin-left": left, "margin-top": top }); } if (opts.maxed && window.navigator.userAgent.indexOf("MSIE") >= 1 && ($.browser.version == "7.0" || $.browser.version == "8.0" || $.browser.version == "9.0") ) { imgDiv.css('display',''); imgDiv.find('img').css('display','') ; } imgDiv.show(); } _this.change(function(e) { if (this.value) { if (!RegExp("\.(" + opts.imgType.join("|") + ")$", "i").test(this.value.toLowerCase())) { if (typeof comm.alert =="function"){ comm.alert({width:420,imgClass:'tips_i',imgFlag:true,content:"图片类型必须是" + opts.imgType.join(",") + "中的一种"}); } else { alert("图片类型必须是" + opts.imgType.join(",") + "中的一种"); } this.value = ""; return false; } //imgDiv.hide(); if ($.browser.msie && $.browser.version<10) { if ($.browser.version == "6.0") { var img = $("<img />"); /* var image = new Image(); image.src = 'file:///' + this.value;*/ img.attr('src', 'file:///' + this.value);img.css({"width":opts.width+'px' ,"height":opts.height+'px'});imgDiv.empty().append(img); autoScaling(); } else { imgDiv.css({ filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)" }); imgDiv.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "scale"; try { imgDiv.get(0).filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = getPath(_this[0]) ; imgDiv.children().hide(); } catch (e) { if (typeof comm.alert =="function" ){ comm.alert({width:420,imgClass:'tips_i',imgFlag:true,content:"无效的图片文件!"}); } else { alert("无效的图片文件!"); } return; } _this.blur();if (window.navigator.userAgent.indexOf("MSIE") >= 1 && ($.browser.version == "7.0" || $.browser.version == "8.0" || $.browser.version == "9.0") ) {_this.next('input[placeholder="ie8"]').focus();}//_this[0].unselect(); setTimeout("autoScaling()", 1); } } else if (window.navigator.userAgent.indexOf("Firefox") >= 1 || window.navigator.userAgent.indexOf("Chrome") >=1 ) { var img = $("<img />"); img.attr('src', window.URL.createObjectURL(this.files.item(0)) ); img.css({ "vertical-align": "middle","width":opts.width ,"height":opts.height});imgDiv.empty().css('display','').append(img); setTimeout("autoScaling()", 1); } else if ( $.browser.safari ){ var file = this.files[0]; if (window.FileReader){ var reader = new FileReader() ; reader.onload = function (e) { //$('#Img0').attr('src', e.target.result); var img = $("<img />"); img.attr('src', e.target.result ); img.css({ "vertical-align": "middle","width":opts.width ,"height":opts.height});imgDiv.empty().css('display','').append(img); } reader.readAsDataURL(file); setTimeout("autoScaling()", 1); } else if (window.webkitURL){ var img = $("<img />"); img.attr('src', window.webkitURL.createObjectURL(this.files.item(0)) ); img.css({ "vertical-align": "middle","width":opts.width ,"height":opts.height});imgDiv.empty().css('display','').append(img); setTimeout("autoScaling()", 1); } } } //检测图片的大小 var fileInput = $(this)[0] ,byteSize=''; if ( fileInput.files && fileInput.files[0] ){ byteSize =fileInput.files[0] && fileInput.files[0].size; } else { var _img = $(this).parent().prev().find('img')[0]; if (!_img){ byteSize = 0 ; } else { byteSize = _img.fileSize ; } /* var fileobject = new ActiveXObject ("Scripting.FileSystemObject"); var file = fileobject.GetFile (document.getElementById("fileSelector").value); byteSize = file.Size; */ } // alert( imgDiv[0].currentStyle.filter ) if (opts.maxSize && byteSize && (byteSize / (1024*1024) ).toFixed(2) > opts.maxSize ){ if (typeof comm.alert =="function" ){ comm.alert({width:420,imgClass:'tips_i',imgFlag:true,content:"图片大小不超过"+opts.maxSize +"M"}); } else { alert("图片大小不超过"+(byteSize / (1024*1024) ).toFixed(2) +"M"); } //重设预览图片 opts.maxed = true; $(this).parent().prev().find('img').attr('src', opts.imgurl || 'resources/img/noImg.gif'); if (window.navigator.userAgent.indexOf("MSIE") >= 1 && ($.browser.version == "7.0" || $.browser.version == "8.0" || $.browser.version == "9.0") ) { //imgDiv.get(0).filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = opts.imgurl || 'resources/img/noImg.gif' ; imgDiv[0].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src='resources/img/noImg.gif')"; imgDiv[0].filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src= opts.imgurl || 'resources/img/noImg.gif' ; } //$(this).parent().prev().css('filter',''); //清空input file(兼容ie,fire,chrome) var currFile = $(this) ,newFile; newFile = currFile.clone().val("");currFile.after( newFile ); currFile.remove(); newFile.uploadPreview(opts); return; }; opts.maxed = false ; }); } });})(jQuery);//获得上传控件的值,obj为上传控件对象function getPath(obj) {alert(obj) if (obj) { if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select(); return document.selection.createRange().text ; } else if (window.navigator.userAgent.indexOf("Firefox") >= 1 || window.navigator.userAgent.indexOf("Chrome")) { if (obj.files) { //return obj.files.item(0).getAsDataURL();return window.URL.createObjectURL(this.files.item(0)) ; } return obj.value; } alert(window.navigator.userAgent) return obj.value; }}//清空上传控件的值,obj为上传控件对象function clearvalue(obj) { obj.select(); document.execCommand("delete");}
0 0
- jquery.uploadpreview.js文件大小限止,兼容ie8,safari9,对源码做了点修改
- 修改HttpCustomHeaders 兼容IE8
- jquery.scrollTop()兼容IE8
- 前端技术学习(二)js判断文件大小(兼容IE8及以上)
- jQuery兼容浏览器IE8方法
- jQuery弹幕 (兼容IE8)
- IE8 兼容JS trim() 解决方案
- java property.js与jquery兼容修改property.js源文件
- jquery-form.js 兼容IE8 IE9等以上火狐谷歌等浏览器
- 对 jquery.carousel.js 进行修改
- js 参数加密 修改jquery源码
- 修改ajaxfileupload.js 源码 对ie9支持
- jQuery ajax load方法 IE8兼容
- jquery input placeholder支持兼容ie7,ie8
- awt,swing做的计算器小代码(效果图和源码)对前面版本作了些小修改
- IE6、IE7、IE8的CSS、JS兼容
- IE6、IE7、IE8的CSS、JS兼容
- IE6、IE7、IE8的CSS、JS兼容
- Gradle发布项目到JCenter仓库
- 前端笔试题
- 数论之原根
- Volley(一 )—— 框架简介
- javascript创建对象的几种方式
- jquery.uploadpreview.js文件大小限止,兼容ie8,safari9,对源码做了点修改
- 基于STM32F072 Nucleo的Wifi无线数据传输
- docker物理机进程数过多问题
- Dom4j设置编码的问题
- php 简单工厂模式
- 三种使用栈的后序遍历方法
- DBR(分区引导扇区)
- 安卓自定义对话框框架
- Mac下Sublime Text 2设置subl命令