//以前是这么做的: 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. 不知道, 明天又变出什么花样出来.
--------------------------------------------------------------------------------------------------------------
咸定!