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遍历 table的脚本
Jul 23 Javascript
Prototype Class对象学习
Jul 19 Javascript
基于JQuery实现异步刷新的代码(转载)
Mar 29 Javascript
让AJAX不依赖后端接口实现方案
Dec 03 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
Dec 31 Javascript
JS hashMap实例详解
May 26 Javascript
详谈DOM简介及节点、属性、查找节点的方法
Nov 16 Javascript
浅谈vue项目重构技术要点和总结
Jan 23 Javascript
JavaScript 五大常见函数
Mar 23 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 Javascript
JS面向对象编程实现的Tab选项卡案例详解
Mar 03 Javascript
Vue通过懒加载提升页面响应速度
May 10 Vue.js
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调用C代码的实现方法
2014/03/11 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
PHP 实现重载
2021/03/09 PHP
javascript打开word文档的方法
2014/04/16 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
Fabric 应用案例
2016/08/28 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
Python数据存储之 h5py详解
2019/12/26 Python
基于python实现查询ip地址来源
2020/06/02 Python
python用Configobj模块读取配置文件
2020/09/26 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
Yahoo-PHP面试题2
2014/12/06 面试题
2014年五四青年节活动策划书
2014/04/22 职场文书
设计顾问服务计划书
2014/05/04 职场文书
横幅标语大全
2014/06/17 职场文书
安全保卫工作竞聘材料
2014/08/25 职场文书
商铺租房协议书范本
2014/12/04 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书