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 相关文章推荐
JQuery与Ajax常用代码实现对比
Oct 03 Javascript
window.open不被拦截的实现代码
Aug 22 Javascript
JavaScript动态生成二维码图片
Apr 20 Javascript
微信小程序 实例应用(记账)详解
Sep 28 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
Oct 10 Javascript
深入理解Node.js的HTTP模块
Oct 12 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
Oct 27 Javascript
详解js的事件代理(委托)
Dec 22 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
微信小程序视图容器(swiper)组件创建轮播图
Jun 19 Javascript
vue项目中使用vue-i18n报错的解决方法
Jan 13 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 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下删除字符串中HTML标签的函数
2008/08/27 PHP
组合算法的PHP解答方法
2012/02/04 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
php的dl函数用法实例
2014/11/06 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
美国宠物商店:Wag.com
2016/10/25 全球购物
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
投标单位介绍信
2014/01/09 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
教师个人成长总结
2015/02/11 职场文书
黄埔军校观后感
2015/06/10 职场文书
催款函范文
2015/06/24 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
浅析MySQL如何实现事务隔离
2021/06/26 MySQL
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL