jquery实现兼容浏览器的图片上传本地预览功能


Posted in Javascript onOctober 14, 2013

一、图片上传实现本地预览

由于上传图片功能,现在大多数都需要在本地实现预览,为了能够更好的让用户体验到效果,实现成品的证明,需要兼容好几种浏览器,所有通过各个例子整合了这个例子插件,兼容火狐、谷歌、ie8,其他的没有进行测试过

(function($){ 
jQuery.fn.extend({ 
uploadPreview: function(opts){ 
opts = jQuery.extend({ 
width: 0, 
height: 0, 
imgPreview: null, 
imgType: ["gif", "jpeg", "jpg", "bmp", "png"], 
callback: function(){ return false; } 
}, opts || {}); var _self = this; 
var _this = $(this); 
var imgPreview = $(opts.imgPreview); 
//设置样式 
autoScaling = function(){ 
imgPreview.css({"margin-left": 0,"margin-top": 0,"width":opts.width,"height":opts.height}); 
imgPreview.show(); 
} 
//file按钮出发事件 
_this.change(function(){ 
if (this.value) { 
if (!RegExp("\.(" + opts.imgType.join("|") + ")$", "i").test(this.value.toLowerCase())) { 
alert("图片类型必须是" + opts.imgType.join(",") + "中的一种"); 
this.value = ""; 
return false; 
} 
if ($.browser.msie) {//判断ie 
var path = $(this).val(); 
if (/"\w\W"/.test(path)) { 
path = path.slice(1,-1); 
} 
imgPreview.attr("src",path); 
imgPreview.css({"margin-left": 0,"margin-top": 0,"width":opts.width,"height":opts.height}); 
setTimeout("autoScaling()", 100); 
} 
else { 
if ($.browser.version < 7) { 
imgPreview.attr('src', this.files.item(0).getAsDataURL()); 
} 
else { 
oFReader = new 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){ 
imgPreview.attr('src', oFREvent.target.result); 
}; 
var oFile = this.files[0]; 
oFReader.readAsDataURL(oFile); 
} 
imgPreview.css({"margin-left": 0,"margin-top": 0,"width":opts.width,"height":opts.height}); 
setTimeout("autoScaling()", 100); 
} 
} 
opts.callback(); 
}); 
} 
}); 
})(jQuery);

二、调用方法
jQuery(function(){ 
jQuery("#idFile1").uploadPreview({ 
width: 100, 
height: 100, 
imgPreview: "#idImg1", 
imgType: ["bmp", "gif", "png", "jpg"], 
callback: function() { 
ip1(); 
return false; 
} 
}); 
);
Javascript 相关文章推荐
prototype1.4中文手册
Sep 22 Javascript
js onkeypress与onkeydown 事件区别详细说明
Dec 13 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Aug 12 Javascript
封装好的js判断操作系统与浏览器代码分享
Jan 09 Javascript
详解javascript函数的参数
Nov 10 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
Dec 12 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
Vue.Draggable实现拖拽效果
Jul 29 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
Apr 17 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 Vue.js
js 距离某一时间点时间是多少实现代码
Oct 14 #Javascript
js算法中的排序、数组去重详细概述
Oct 14 #Javascript
鼠标拖动实现DIV排序示例代码
Oct 14 #Javascript
不同Jquery版本引发的问题解决
Oct 14 #Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
Oct 14 #Javascript
javascript预加载图片、css、js的方法示例介绍
Oct 14 #Javascript
js获取或设置当前窗口url参数的小例子
Oct 14 #Javascript
You might like
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
捕获关闭窗口的脚本
2009/01/10 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
js实现百度登录框鼠标拖拽效果
2017/03/07 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
python 获取et和excel的版本号
2009/04/09 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
Python subprocess模块详细解读
2018/01/29 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
Python设计密码强度校验程序
2020/07/30 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
党员对照检查材料思想汇报
2014/09/16 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python
SQL SERVER触发器详解
2022/02/24 SQL Server