当前位置: 首页 > news >正文

FireFox 7/8 上传前预览图片

//以前是这么做的: var obj = document.getElementById("UploadFile"); var src = ""; if (obj.files) { src = obj.files[0].getAsDataURL(); } else { if((navigator.userAgent.indexOf("MSIE")>0) && (parseInt(navigator.appVersion) >=4))//isIE = true; { obj.select(); //该对象选取 src= document.selection.createRange().text; //返回选取项的文本内容 } } document.getElementById("imgPreview").src=src;

上面的大概只能用于FF6 (<=6), IE 6. 版本变化幻多, 自己去测试吧.

现在混蛋的是, 现在已经无法这样取了.

关于IE7/8, 在本人另一篇文章里,

FF7/8, js预览应该是如此处置.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <title>Image preview example</title> <script type="text/javascript"> oFReader = new FileReader(), rFilter = /^(image\/bmp|image\/cis-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x-cmu-raster|image\/x-cmx|image\/x-icon|image\/x-portable-anymap|image\/x-portable-bitmap|image\/x-portable-graymap|image\/x-portable-pixmap|image\/x-rgb|image\/x-xbitmap|image\/x-xpixmap|image\/x-xwindowdump)$/i; oFReader.onload = function (oFREvent) { document.getElementById("uploadPreview").src = oFREvent.target.result; }; function loadImageFile() { if (document.getElementById("uploadImage").files.length === 0) { return; } var oFile = document.getElementById("uploadImage").files[0]; if (!rFilter.test(oFile.type)) { alert("You must select a valid image file!"); return; } oFReader.readAsDataURL(oFile); } </script> </head> <body οnlοad="loadImageFile();"> <form name="uploadForm" action=""> <table> <tbody> <tr> <td> <img id="uploadPreview" style="" src="http://www.csdn.net/ui/images/gongshang_logos.gif" alt="Image preview" /> </td> <td> <input id="uploadImage" type="file" name="myPhoto" οnchange="loadImageFile();" /> </td> </tr> </tbody> </table> </form> </body> </html>

来源: http://archive.cnblogs.com/a/2208869/

--------------------------------------------------------------------------------------------------------------

有一个牛人, 做了一个通用的. http://www.cnblogs.com/cloudgamer/archive/2009/12/22/ImagePreview.html

IE的是可行, 但FF不行. 可能是当时版本没有到7.

不过里面设置了一种很强大的模式: remote, 几乎没有什么搞不定的. [ 上传到服务器的内存, 处理完, 再回传显示. ]

在ImagePreview.js , Line 42插入一条语句

ImagePreview.MODE = "remote";

也就是传到服务器上, 再给客户看, 差不多就一切OK了.

JS预览确实是好, 可以节省资源. 可是你能跟得上浏览器的版本变化吗?

IE行的, FF不行, IE6行的, IE7不行, FF6行的, FF7不行. IE, FF搞定了, 还有Chrome, 还有Opera. 不知道, 明天又变出什么花样出来.

--------------------------------------------------------------------------------------------------------------

咸定!


相关文章:

  • sqoop: mysql to hive
  • 六、CentOS 6.5 下Nginx的配置
  • JS判断浏览器类型及版本
  • 【框架学习与探究之依赖注入--Autofac】
  • 由windows的Alt+Tab键联想到的数据结构
  • 原生js解决简单轮播图的切换
  • MDCC印象之二:芒果的味道
  • ORA-00600: internal error code, arguments: [kgl-no-mutex-held]
  • exp之compress到底在压缩什么
  • 数据库的独立子查询以及数据的删除、更新和建立视图的笔记
  • 让每次弹出的div随页面的卷动而保持相对位置不变
  • 课后作业-阅读任务-阅读笔记-4
  • connect by level语法的理解
  • echarts 重新渲染(重新绘制,重新加载数据)等
  • 【转】如何恶搞朋友的电脑?超简单的vbs代码
  • Android优雅地处理按钮重复点击
  • co模块的前端实现
  • HomeBrew常规使用教程
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript函数式编程(一)
  • React的组件模式
  • Selenium实战教程系列(二)---元素定位
  • 从0实现一个tiny react(三)生命周期
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 每天10道Java面试题,跟我走,offer有!
  • 使用docker-compose进行多节点部署
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 问题之ssh中Host key verification failed的解决
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​linux启动进程的方式
  • (3)llvm ir转换过程
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (42)STM32——LCD显示屏实验笔记
  • (待修改)PyG安装步骤
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十一)手动添加用户和文件的特殊权限
  • (一)Java算法:二分查找
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)程序员技术练级攻略
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .bat批处理(六):替换字符串中匹配的子串
  • .Net - 类的介绍
  • .NET Core中的去虚
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET和.COM和.CN域名区别
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET中GET与SET的用法
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600