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 相关文章推荐
漂亮的widgets,支持换肤和后期开发新皮肤
Apr 23 Javascript
JS查看对象功能代码
Apr 25 Javascript
学习ExtJS table布局
Oct 08 Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
动态加载JS文件的三种方法
Nov 08 Javascript
jQuery无刷新上传之uploadify3.1简单使用
Jun 18 Javascript
通过命令行创建vue项目的方法
Jul 20 Javascript
vue+vux实现移动端文件上传样式
Jul 28 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
Aug 13 Javascript
浅析 Vue 3.0 的组装式 API(一)
Aug 31 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一些服务器端特性的配置加强php的安全
2006/10/09 PHP
php横向重复区域显示二法
2008/09/25 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
javascript hashtable实现代码
2009/10/13 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python 回调函数和回调方法的实现分析
2016/03/23 Python
详解使用 pyenv 管理多个版本 python 环境
2017/10/19 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
2015年党性分析材料
2014/12/19 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
python process模块的使用简介
2021/05/14 Python
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang