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 相关文章推荐
js 数组操作代码集锦
Apr 28 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
Mar 28 Javascript
javascript动态添加checkbox复选框的方法
Dec 23 Javascript
JS中取二维数组中最大值的方法汇总
Apr 17 Javascript
jQuery代码性能优化的10种方法
Jun 21 Javascript
前端js实现文件的断点续传 后端PHP文件接收
Oct 14 Javascript
Angular开发者指南之入门介绍
Mar 05 Javascript
浅谈原型对象的常用开发模式
Jul 22 Javascript
React Native悬浮按钮组件的示例代码
Apr 05 Javascript
vue下拉列表功能实例代码
Apr 08 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
JavaScript实现九宫格拖拽效果
Jun 28 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_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
js输出列表实现代码
2010/09/12 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
python检查URL是否正常访问的小技巧
2017/02/25 Python
详解python eval函数的妙用
2017/11/16 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
Python集合操作方法详解
2020/02/09 Python
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
商务助理岗位职责
2013/11/13 职场文书
给校长的建议书500字
2014/05/15 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
国际金融专业自荐信
2014/07/05 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
思想品德评语大全
2014/12/31 职场文书