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 相关文章推荐
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
基于jQuery的简单的列表导航菜单
Mar 02 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
jquery实现非叠加式的搜索框提示效果
Jan 07 Javascript
JS实现的生成随机数的4个函数分享
Feb 11 Javascript
jQuery实现无限往下滚动效果代码
Apr 16 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 Javascript
vue2.0中goods选购栏滚动算法的实现代码
May 17 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
Jul 06 Javascript
实现单层json按照key字母顺序排序的示例
Dec 06 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
Sep 07 Javascript
从原生JavaScript到React深入理解
Jul 23 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
Vue3为什么这么快
2020/09/23 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python批量修改文本文件内容的方法
2016/04/29 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
python turtle 绘制太极图的实例
2019/12/18 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
python 星号(*)的多种用途
2020/09/21 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
护理职业应聘自荐书
2013/09/29 职场文书
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
业务副厂长岗位职责
2014/01/03 职场文书
七一党日活动总结
2014/07/08 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
超市收银员岗位职责
2015/04/07 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书
小学副班长竞选稿
2015/11/21 职场文书
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers