兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览
html代码:
- <div id="divPreview">
- <img id="imgHeadPhoto" src="Images/Headphoto/noperson.jpg" style="width: 160px; height: 170px;border: solid 1px #d2e2e2;" alt="" />
- </div>
- <asp:FileUpload ID="fuHeadPhoto" runat="server" onchange="PreviewImage(this,'imgHeadPhoto','divPreview')" size="20" />
将网上的js本地图片预览整合了一下,希望对大家有用,如有其他浏览器不兼容且有解决办法,请给我留言,我将及时更新本文代码。
javascript代码:
- //js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3、360浏览器
- function PreviewImage(fileObj, imgPreviewId, divPreviewId) {
- var allowExtention = document.getElementById("hfAllowPicSuffix").value; //.jpg,.bmp,.gif,.png,允许上传文件的后缀名
- var extention = fileObj.value.substring(fileObj.value.lastIndexOf(".") + 1).toLowerCase(); //获取当前上传文件的扩展名
- var browserVersion = window.navigator.userAgent.toUpperCase();
- if (allowExtention.indexOf(extention) > -1) {
- if (fileObj.files) {//兼容chrome、火狐7+、360浏览器5.5+等,应该也兼容ie10,HTML5实现预览
- 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("不支持Safari浏览器6.0以下版本的图片预览!");
- } else {
- alert("不支持您当前使用的浏览器的图片预览!");
- }
- } else if (browserVersion.indexOf("MSIE") > -1) {//ie、360低版本预览
- 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会拒绝访问
- document.getElementById(divPreviewId).focus(); //参考http://gallop-liu.iteye.com/blog/1344778
- }
- 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 {
- alert("不支持您当前使用的浏览器的图片预览!");
- }
- } else {
- alert("仅支持" + allowExtention + "为后缀名的文件!");
- fileObj.value = ""; //清空选中文件
- if (browserVersion.indexOf("MSIE") > -1) {
- fileObj.select();
- document.selection.clear();
- }
- fileObj.outerHTML = fileObj.outerHTML;
- }
- }
测试代码下载 测试代码js未更新,测试时将本页js复制到测试代码里面
2013-7-2
1.更新原来newPreview.style.width =document.getElementById(imgPreviewId).style.width为document.getElementById(imgPreviewId).width+"px";
2013-7-4
1.更新兼容ie9浏览器、兼容360浏览器5.5+
2014-4-11
1.修复上传到服务器上后,特殊情况下ie9还是拒绝访问问题问题。
- fileObj.blur();修改为document.getElementById(divPreviewId).focus();
- 转发自:http://www.cnblogs.com/slyzly/articles/2411940.html
兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览的更多相关文章
- js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js本地图片预览代码兼容所有浏览器
html代码 <div id="divPreview" style="width: 160px; height: 170px"><img id ...
- 兼容最新firefox、chrome和IE的javascript图片预览实现代码
这篇文章主要介绍了兼容最新firefox.chrome和IE的javascript图片预览实现代码,测试了浏览器firefox6.firefox12.chrome 25.0.1364.172 m.IE ...
- html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上 ...
- JS复制内容到剪贴板: 兼容IE、Firefox、Chrome、Safari所有浏览器【转】
正 文: 现在浏览器种类也越来越多,诸如 IE.Firefox.Chrome.Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了. 在FLASH 9 时代,有一个 ...
- [转]JS根据useAgent来判断edge, ie, firefox, chrome, opera, safari 等浏览器的类型及版本
js根据浏览器的useAgent来判断浏览器的类型 userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值. JavaScript语法:navigator.use ...
- 前端图片预览,上传前预览,兼容IE7、8、9、10、11,Firefox,Chrome(学习到的知识)
文章地址:http://www.cnblogs.com/rubylouvre/p/4597344.html 一.window.URL 在Chrome中,window.URL和window.webkit ...
- python-selenium自动化测试(火狐、谷歌、360浏览器启动)
一.打开谷歌浏览器 import selenium from selenium import webdriver browser = webdriver.Chrome(executable_path ...
- type="file"实现兼容IE8本地选择图片预览
一.HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Uploa ...
随机推荐
- Windows命令行提取日期时间
参考: http://elicecn.blog.163.com/blog/static/174017473200931910320556/ SET str="%date:~0,4%%date ...
- centos 单独安装PHP的mysql和mysqli扩展
2013年11月22日 11:25:41 Linux centos 6.3 最小化安装 mysql 5.5 php 5.4 安装PHP时只是 ./configure --prefix=/**** 并没 ...
- eclipse字体的设置
eclipse的默认字体太小,所以设置的大一些比较清楚,方法很简单,单击菜单栏的"Window"选择"Preferences",如下图: 然后左侧依次选择Gen ...
- XP下使用IIS访问asp出现无权查看网页问题的解决办法
这是用户权限问题,因为你用的磁盘是NTFS格式. 解决方法: 一.添加用户(“Everyone”或者“IUSR_你的机器名”,如IUSR_HONG,即“Internet 来宾用户”) 二.修改用户权限 ...
- org.apache.catalina.session.StandardManager doLoad
转载自:http://www.cnblogs.com/java727/p/3300613.html SEVERE: IOException while loading persisted sessio ...
- discuz插件开发新手入门 超详细
作为一个新手,目前也是刚刚玩转discuz的插件功能,好东西不敢独享,就拿出来大家一起分享入门的过程.现在网上很多关于discuz的插件教程都是很简单的教程,原因可能是这个东西是商业化的东西,本着分享 ...
- [Linux] Linux进程PID散列表
linux系统中每个进程由一个进程id标识,在内核中对应一个task_struct结构的进程描述符,系统中所有进程的task_struct通过链表链接在一起,在内核中,经常需要通过进程id来获取进程描 ...
- 字串变换(codevs 1099)
题目描述 Description 已知有两个字串 A$, B$ 及一组字串变换的规则(至多6个规则): A1$ -> B1$ A2$ -> B2$ 规则的含义为:在 A$中的子串 A1$ ...
- Mysql查询比较
创建一个表: article,书编码:dealer,书店:price ,书的价格. 导入一些数据: INSERT INTO shop VALUES (1,'A',3.45),(1,'B',3.99), ...
- Redis笔记(二)Redis的部署和启动
Linux下Redis的部署和启动 下载安装介质 Redis官网地址:http://www.redis.io/目前最新版本是redis-3.0.3. 可以访问 http://download.redi ...