兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览
html代码
<div id="divPreview">
<img id="imgHeadPhoto" src="Images/Headphoto/noperson.jpg" style="width: 160px; height: 170px;border: solid 1px #d2e2e2;" alt="" />
</div>
<asp:FileUpload ID="fuHeadPhoto" runat="server" οnchange="PreviewImage(this,'imgHeadPhoto','divPreview')" size="20" />
将网上的js本地图片预览整合了一下,希望对大家有用,如有其他浏览器不兼容且有解决办法,请给我留言,我将及时更新本文代码。
javascript代码
//js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3、360浏览器
function PreviewImage(fileObj,imgPreviewId,divPreviewId){var allowExtention=".jpg,.bmp,.gif,.png";//允许上传文件的后缀名document.getElementById("hfAllowPicSuffix").value;var extention=fileObj.value.substring(fileObj.value.lastIndexOf(".")+1).toLowerCase(); var browserVersion= window.navigator.userAgent.toUpperCase();if(allowExtention.indexOf(extention)>-1){ if(fileObj.files){//兼容chrome、火狐7+、360浏览器5.5+等,应该也兼容ie10,HTML5实现预览if(window.FileReader){var reader = new FileReader(); reader.onload = function(e){document.getElementById(imgPreviewId).setAttribute("src",e.target.result);} reader.readAsDataURL(fileObj.files[0]);}else if(browserVersion.indexOf("SAFARI")>-1){alert("不支持Safari浏览器6.0以下版本的图片预览!");}}else if (browserVersion.indexOf("MSIE")>-1){//ie、360低版本预览if(browserVersion.indexOf("MSIE 6")>-1){//ie6document.getElementById(imgPreviewId).setAttribute("src",fileObj.value);}else{//ie[7-9]fileObj.select();if(browserVersion.indexOf("MSIE 9")>-1)fileObj.blur();//不加上document.selection.createRange().text在ie9会拒绝访问var newPreview =document.getElementById(divPreviewId+"New");if(newPreview==null){newPreview =document.createElement("div");newPreview.setAttribute("id",divPreviewId+"New");newPreview.style.width = document.getElementById(imgPreviewId).width+"px";newPreview.style.height = document.getElementById(imgPreviewId).height+"px";newPreview.style.border="solid 1px #d2e2e2";}newPreview.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src='" + document.selection.createRange().text + "')"; var tempDivPreview=document.getElementById(divPreviewId);tempDivPreview.parentNode.insertBefore(newPreview,tempDivPreview);tempDivPreview.style.display="none"; }}else if(browserVersion.indexOf("FIREFOX")>-1){//firefoxvar firefoxVersion= parseFloat(browserVersion.toLowerCase().match(/firefox\/([\d.]+)/)[1]);if(firefoxVersion<7){//firefox7以下版本document.getElementById(imgPreviewId).setAttribute("src",fileObj.files[0].getAsDataURL());}else{//firefox7.0+ document.getElementById(imgPreviewId).setAttribute("src",window.URL.createObjectURL(fileObj.files[0]));}}else{document.getElementById(imgPreviewId).setAttribute("src",fileObj.value);} }else{alert("仅支持"+allowExtention+"为后缀名的文件!");fileObj.value="";//清空选中文件if(browserVersion.indexOf("MSIE")>-1){ fileObj.select();document.selection.clear();} fileObj.outerHTML=fileObj.outerHTML;}
}
整个测试代码:图片自己添加
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
</head>
<body>
<div id="divPreview"><img id="imgHeadPhoto" src="noperson.jpg" style="width: 160px; height: 170px; border: solid 1px #d2e2e2;" alt="" />
</div>
<input type="file" onchange="PreviewImage(this,'imgHeadPhoto','divPreview')" size="20"/><script type="text/javascript">
//js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3
function PreviewImage(fileObj,imgPreviewId,divPreviewId){var allowExtention=".jpg,.bmp,.gif,.png";//允许上传文件的后缀名document.getElementById("hfAllowPicSuffix").value;var extention=fileObj.value.substring(fileObj.value.lastIndexOf(".")+1).toLowerCase(); var browserVersion= window.navigator.userAgent.toUpperCase();if(allowExtention.indexOf(extention)>-1){ if(fileObj.files){//HTML5实现预览,兼容chrome、火狐7+等if(window.FileReader){var reader = new FileReader(); reader.onload = function(e){document.getElementById(imgPreviewId).setAttribute("src",e.target.result);} reader.readAsDataURL(fileObj.files[0]);}else if(browserVersion.indexOf("SAFARI")>-1){alert("不支持Safari6.0以下浏览器的图片预览!");}}else if (browserVersion.indexOf("MSIE")>-1){if(browserVersion.indexOf("MSIE 6")>-1){//ie6document.getElementById(imgPreviewId).setAttribute("src",fileObj.value);}else{//ie[7-9]fileObj.select();if(browserVersion.indexOf("MSIE 9")>-1)fileObj.blur();//不加上document.selection.createRange().text在ie9会拒绝访问var newPreview =document.getElementById(divPreviewId+"New");if(newPreview==null){newPreview =document.createElement("div");newPreview.setAttribute("id",divPreviewId+"New");newPreview.style.width = document.getElementById(imgPreviewId).width+"px";newPreview.style.height = document.getElementById(imgPreviewId).height+"px";newPreview.style.border="solid 1px #d2e2e2";}newPreview.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src='" + document.selection.createRange().text + "')"; var tempDivPreview=document.getElementById(divPreviewId);tempDivPreview.parentNode.insertBefore(newPreview,tempDivPreview);tempDivPreview.style.display="none"; }}else if(browserVersion.indexOf("FIREFOX")>-1){//firefoxvar firefoxVersion= parseFloat(browserVersion.toLowerCase().match(/firefox\/([\d.]+)/)[1]);if(firefoxVersion<7){//firefox7以下版本document.getElementById(imgPreviewId).setAttribute("src",fileObj.files[0].getAsDataURL());}else{//firefox7.0+ document.getElementById(imgPreviewId).setAttribute("src",window.URL.createObjectURL(fileObj.files[0]));}}else{document.getElementById(imgPreviewId).setAttribute("src",fileObj.value);} }else{alert("仅支持"+allowExtention+"为后缀名的文件!");fileObj.value="";//清空选中文件if(browserVersion.indexOf("MSIE")>-1){ fileObj.select();document.selection.clear();} fileObj.outerHTML=fileObj.outerHTML;}
}
</script>
</body>
</html>
2013-7-2
1.更新原来newPreview.style.width =document.getElementById(imgPreviewId).style.width为document.getElementById(imgPreviewId).width+"px";
2013-7-4
1.更新兼容ie9浏览器、兼容360浏览器5.5+
兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览相关推荐
- js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3
//js本地图片预览,兼容ie[6-9].火狐.Chrome17+.Opera11+.Maxthon3 <!DOCTYPE html> <html xmlns="http: ...
- js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3tr td style=width:35%; class=noBorderL
<tr> <td style="width:35%;" class="noBorderL firstTD">资格证图片</td&g ...
- input file本地图片预览的方法(兼容IE、Chrome和Firefox)
JS兼容各个浏览器的本地图片上传即时预览效果 2014-02-26 我来说两句 收藏 我要投稿 很早以前 在杭州银行工作曾经碰到这么一个需求,当时也是纠结了很久,也是go ...
- html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
原文:html5 图片上传,支持图片预览.压缩.及进度显示,兼容IE6+及标准浏览器 以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一 ...
- JavaScript 判断 Chrome 内核的 360 浏览器
http://loo2k.com/blog/detect-chrome-core-360-browser/ 由于众所周知的原因,360 浏览器(包括安全浏览器和极速浏览器)都将自己的 userAgen ...
- 最简单的图片预览功能【兼容IE8】
最简单的图片预览功能[兼容IE8] 将如下代码放入<head></head>中: <html><head> <script type=&quo ...
- chrome opera ie等浏览器hack解决方案
来自:http://www.zhjie.net/chrome-opera-browser-such-as-ie-hack-solution.htm 相信每一个做前端的.做网站开发的都有一个体会.做兼容 ...
- [乐意黎原创] JS根据useAgent来判断edge, ie, firefox, chrome, opera, safari 等浏览器的类型及版本
JS根据浏览器的useAgent来判断浏览器的类型. userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值. javascript语法:navigator.us ...
- 360浏览器的js兼容与360拦截浮动广告
360浏览器对页面过滤的地方非常之多,先说两个我前两天用到的: 前几天用写了点(http://www.nycfgl.com/)东西,用js写的,在ie和chrome中都没用问题,在360中就出问题了, ...
最新文章
- PyTorch图像分类从模型自定义到测试
- linux的ftp226,ftp服务器 不返回 226
- 宇宙的第一推动力,必然存在吗?
- Android单元测试 - 几个重要问题
- 移动端阻止body左右偏移
- 光伏等新能源信用风险事件频繁爆发
- python连接redis sentinel集群
- 发卡网源码 去后门 可以扩展码支付
- Linux下高速缓存DNS的配置
- MDaemon替换注册码怎样人工激活.docx
- 1053. 住房空置率 (20)-PAT乙级真题
- window ftp open命令打不开_Centos7上搭建ftp
- 笔记本电脑(PC)序列号查询
- Java 中Lambda表达式的使用详解
- c语言第五章函数课后答案,C语言程序设计(第2版) 刘克威,张凌晓著 习题答案-第五章...
- 新建SpringCloud电商后台项目
- 爬虫-漫画喵的100行逆袭
- 电脑插了耳机后声音还是外放解决方案
- 【将数组a中n个整数按相反顺序存放】
- 七彩虹主板进BIOS设置和打开启动项菜单快捷键
热门文章
- Linux下闹钟函数alarm的常见用法
- python十六进制转十进制
- What's new in Swift 3
- html漂浮图片代码关闭,js带关闭按钮的网页漂浮广告代码
- 试用码云gitee上开源项目“小威架构 / boot-backend“的代码生成器遇到的坑
- 【致敬未来的攻城狮计划】--RA2E1 开发板测评(2)LED闪烁
- 解决播放swf视频提示“该版本过旧,不支持运行,请升级后使用”的问题
- 计算机网络的产生和发展
- mybatis的example.createCriteria()方法学习记录
- 总部在新加坡!招AIGC算法工程师、测试工程师,20-35k,STARY等你来!