Javascript 本地图片预览

IE 的本地图片预览,使用 "file://localhost/"+file.value 的形式实现。或者使用 图片滤镜 来实现;

Chrome  和 FireFox 浏览器,使用 HTML5 中的 FileReader 对象来实现。

代码简陋:

1、图片滤镜:

 1 <!DOCTYPE HTML>  
 2 <html>  
 3 <head>  
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
 5 <script type="text/javascript">
 6 function preImg(sourceId, targetId) {
 7     if (typeof FileReader === 'undefined') {
 8         var file = document.getElementById(sourceId);
 9         var img = document.getElementById(targetId);
10         img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src='"+file.value+"')";
11         return;
12     }
13     var reader = new FileReader();
14 
15     reader.onload = function(e) {
16         var img = document.getElementById(targetId);
17         img.src = this.result;
18     };
19     reader.readAsDataURL(document.getElementById(sourceId).files[0]);
20 }
21 </script>
22 </head>
23 <body>
24 <form action="">
25     <input type="file" name="imgOne" id="imgOne" onchange="preImg(this.id,'imgPre');" />
26     <img id="imgPre" width="100px;"/>  
27 </form>
28 </body>
29 </html>

 

 2、"file://localhost/"+file.value 的形式:

 1 <!DOCTYPE HTML>  
 2 <html>  
 3 <head>  
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
 5 <script type="text/javascript">
 6 function preImg(sourceId, targetId) {
 7     if (typeof FileReader === 'undefined') {
 8         var file = document.getElementById(sourceId);
 9         var img = document.getElementById(targetId);
10         img.src = "file://localhost/"+file.value ;
11         return;
12     }
13     var reader = new FileReader();
14 
15     reader.onload = function(e) {
16         var img = document.getElementById(targetId);
17         img.src = this.result;
18     }
19     reader.readAsDataURL(document.getElementById(sourceId).files[0]);
20 }
21 </script>
22 </head>
23 <body>
24 <form action="">
25     <input type="file" name="imgOne" id="imgOne" onchange="preImg(this.id,'imgPre');" />
26     <img id="imgPre" src="" style="display: block;" />  
27 </form>
28 </body>
29 </html>
posted @ 2012-08-06 09:25  书山瞌睡虫  阅读(196)  评论(0编辑  收藏  举报