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 函数集合
Jun 11 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
Feb 24 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
Aug 22 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
Dec 12 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
Jun 23 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 Javascript
javascript中replace使用方法总结
Mar 01 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
Jun 13 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
详解vuex的简单使用
Mar 12 Javascript
JS实现TITLE悬停长久显示效果完整示例
Feb 11 Javascript
openlayers4实现点动态扩散
Aug 17 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
python 实时遍历日志文件
2016/04/12 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
python爬取指定微信公众号文章
2018/12/20 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
借款担保书范文
2014/05/13 职场文书
师德承诺书
2015/01/20 职场文书
会计岗位职责
2015/02/03 职场文书
老干部座谈会主持词
2015/07/03 职场文书
通讯稿范文
2015/07/22 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js
使用Java去实现超市会员管理系统
2022/03/18 Java/Android