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 相关文章推荐
newxtree.js代码
Mar 13 Javascript
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 Javascript
Js 随机数产生6位数字
May 13 Javascript
Jquery中获取iframe的代码
Jan 11 Javascript
jQuery实现图片预加载效果
Nov 27 Javascript
表单中单选框添加选项和移除选项
Jul 04 Javascript
Bootstrop实现多级下拉菜单功能
Nov 24 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
详解JS中的快速排序与冒泡
Jan 10 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 Javascript
laravel实现中文和英语互相切换的例子
Sep 30 Javascript
three.js中多线程的使用及性能测试详解
Jan 07 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
正则表达式语法
2006/10/09 Javascript
php &amp;&amp; 逻辑与运算符使用说明
2010/03/04 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
php 生成短网址原理及代码
2014/01/23 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
VUE重点问题总结
2018/03/19 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
python中reload(module)的用法示例详解
2017/09/15 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Linux下python制作名片示例
2018/07/20 Python
python 标准差计算的实现(std)
2019/07/29 Python
Python列表操作方法详解
2020/02/09 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
幼儿园感恩节活动方案
2014/10/06 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
使用CSS实现音波加载效果
2023/05/07 HTML / CSS