IE9下本地图片预览JS代码修改

原代码已经很好,我只加了少少,控制滚动条的出现,和预览时图片过小的情况:

IE下一定要加  alert("已成功选择图片!"); 才按比例缩小,奇怪@

 

<style type="text/css"> #kk{  width:400px;  height:400px;  overflow: hidden; } #preview_wrapper{  width:300px;  height:300px;  background-color:#CCC;  overflow: hidden; }   #preview_fake{ /* 该对象用于在IE下显示预览图片 */       filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);    width:300px;  overflow: hidden; }   #preview_size_fake{ /* 该对象只用来在IE下获得图片的原始尺寸,无其它用途 */       filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);   width:300px;     visibility:hidden;  overflow: hidden;  }   #preview{ /* 该对象用于在FF下显示预览图片 */       width:300px;       height:300px;   overflow: hidden; }   </style><script type="text/javascript"> function onUploadImgChange(sender){       if( !sender.value.match( /.jpg|.gif|.png|.bmp/i ) ){           alert('图片格式无效!');           return false;       }     var objPreview = document.getElementById('preview');       var objPreviewFake = document.getElementById('preview_fake');       var objPreviewSizeFake = document.getElementById('preview_size_fake');     if( sender.files &&  sender.files[0] ){           objPreview.style.display = 'block';           objPreview.style.width = 'auto';           objPreview.style.height = 'auto';                      // Firefox 因安全性问题已无法直接通过 input[file].value 获取完整的文件路径           objPreview.src = sender.files[0].getAsDataURL();           }else if( objPreviewFake.filters ){            // IE7,IE8 在设置本地图片地址为 img.src 时出现莫名其妙的后果           //(相同环境有时能显示,有时不显示),因此只能用滤镜来解决                      // IE7, IE8因安全性问题已无法直接通过 input[file].value 获取完整的文件路径           sender.select();   sender.blur();   var imgSrc = document.selection.createRange().text;             objPreviewFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;           objPreviewSizeFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;          alert("已成功选择图片!");         autoSizePreview( objPreviewFake,objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );           objPreview.style.display = 'none';       }   }     function onPreviewLoad(sender){       autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );   }     function autoSizePreview( objPre, originalWidth, originalHeight ){       var zoomParam = clacImgZoomParam( 300, 300, originalWidth, originalHeight );       objPre.style.width = zoomParam.width + 'px';       objPre.style.height = zoomParam.height + 'px';       objPre.style.marginTop = zoomParam.top + 'px';       objPre.style.marginLeft = zoomParam.left + 'px';   }     function clacImgZoomParam( maxWidth, maxHeight, width, height ){       var param = { width:width, height:height, top:0, left:0 };              if( width>maxWidth || height>maxHeight ){           rateWidth = width / maxWidth;           rateHeight = height / maxHeight;                      if( rateWidth > rateHeight ){               param.width =  maxWidth;               param.height = height / rateWidth;           }else{               param.width = width / rateHeight;               param.height = maxHeight;           }       }              param.left = (maxWidth - param.width) / 2;       param.top = (maxHeight - param.height) / 2;              return param;   } </script> <input name="localfile"  type="file" id="localfile" size="28" οnchange="onUploadImgChange(this)"/> <!--以下是预览图片用的--> <div id="kk"> <div id="preview_wrapper"> <div id="preview_fake"> <img id="preview" src="" οnlοad="onPreviewLoad(this)"/> </div> </div> <br/> <img id="preview_size_fake" /> </div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值