js本地图片预览实现代码


Posted in Javascript onOctober 09, 2016

本文实例为大家分享了js本地图片预览实例,供大家参考,具体内容如下

<!DOCTYPE html>
<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) {//ie6
document.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) {//firefox
var 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;
}
return fileObj.value; //返回路径
}
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery的动态表格插件
Mar 28 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
Jan 08 Javascript
jQuery绑定事件的四种方式介绍
Oct 31 Javascript
JavaScript 字符串常用操作小结(非常实用)
Nov 30 Javascript
jQuery Pagination分页插件使用方法详解
Feb 28 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
详解Vue组件之作用域插槽
Nov 22 Javascript
JS中实现一个下载进度条及播放进度条的代码
Jun 10 Javascript
vue使用codemirror的两种用法
Aug 27 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
JavaScript基础之this和箭头函数详析
Sep 05 Javascript
JS实现手写 forEach算法示例
Apr 29 Javascript
js html css实现复选框全选与反选
Oct 09 #Javascript
不间断循环滚动效果的实例代码(必看篇)
Oct 08 #Javascript
关于JavaScript和jQuery的类型判断详解
Oct 08 #Javascript
js基本算法:冒泡排序,二分查找的简单实例
Oct 08 #Javascript
javascript中获取元素标签中间的内容的实现方法
Oct 08 #Javascript
Jquery和Js获得元素标签名称的方法总结
Oct 08 #Javascript
JS获取html元素的标记名实现方法
Oct 08 #Javascript
You might like
PHP中cookies使用指南
2007/03/16 PHP
php 字符转义 注意事项
2009/05/27 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
基于python的Paxos算法实现
2019/07/03 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
基于python中__add__函数的用法
2019/11/25 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
公司培训心得体会
2014/01/03 职场文书
商场中秋节广播稿
2014/01/17 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
安全教育感言
2014/03/04 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
入党申请书怎么写?
2019/06/21 职场文书
Java版 单机五子棋
2022/05/04 Java/Android