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 相关文章推荐
非常有用的40款jQuery 插件推荐(系列二)
Dec 25 Javascript
jquery中获取id值方法小结
Sep 22 Javascript
深入理解JavaScript中的传值与传引用
Dec 09 Javascript
javascript模拟订火车票和退票示例
Apr 24 Javascript
动态读取JSON解析键值对的方法
Jun 03 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
js判断输入字符串是否为空、空格、null的方法总结
Jun 14 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
Sep 12 Javascript
微信小程序之分享页面如何返回首页的示例
Mar 28 Javascript
jQuery表单选择器用法详解
Aug 22 jQuery
JavaScript 闭包的使用场景
Sep 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
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
angular2使用简单介绍
2016/03/01 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
Bootstrap CSS布局之按钮
2016/12/17 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
python类继承用法实例分析
2014/10/10 Python
详解Python中dict与set的使用
2015/08/10 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python中qutip用法示例详解
2020/10/02 Python
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
自我鉴定怎么写
2014/01/12 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
松材线虫病防治方案
2014/06/15 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
零基础学java之循环语句的使用
2022/04/10 Java/Android