本地图片上传前的预览
2008-12-22 14:01
274 查看
IE7和FF一样,都对本地文件做了一些限制,都不支持本地图片路径,所以本地预览好像已经没有其他办法可以实现了,但是使用滤镜也算是比较好的解决方案,也许会说这不符合标准,但是因为即使IE7支持了IE6的方案,FF一样不支持,所以现在改用滤境效果和原来是一样的,那就是只支持IE,不支持FF,至于标准,我感觉不必要拘束太多,既然已经无法做到兼容,那也只好找个变通的办法。
<!--以下均支持IE6和IE7,不支持Firefox2.0,其他浏览器未经测试-->
由于这些代码是直接从我自己的文件里直接摘出来的,里面可能有一些函数要从第一篇中加载。(例如最常用的获取对象的函数:getObject())
链接:一些常用的JS功能函数(一)
<!--以下均支持IE6和IE7,不支持Firefox2.0,其他浏览器未经测试-->
由于这些代码是直接从我自己的文件里直接摘出来的,里面可能有一些函数要从第一篇中加载。(例如最常用的获取对象的函数:getObject())
链接:一些常用的JS功能函数(一)
/* IE6,IE7上传图片前预览图片 IE6下还可以同时检测图片的大小 size 单位为KB <mce:style type="text/css"><!-- .newPreview { width:400px; height:300px; FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale) } .nodis{display:none;} --></mce:style><style type="text/css" mce_bogus="1"> .newPreview { width:400px; height:300px; FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale) } .nodis{display:none;}</style> <input type="file" name="litpic" onchange="PreviewImg(this,'newPreview','ndsPreview',400)" /> <div id="newPreview" class="newPreview"></div> <img id="ndsPreview" class="nodis" /> */ function PreviewImg(imgFile,newPreview,ndsPreview,size) { newPreview = getObject(newPreview); if(!imgFile || !imgFile.value || !newPreview){return}; var patn = //.jpg$|/.jpeg$|/.gif$|/.png$|/.bmp$/i; if(patn.test(imgFile.value)) { try{newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;}catch(e){} if(navigator.appVersion.indexOf("MSIE 6.0",0)>-1) { size=!size?0:size; ndsPreview = getObject(ndsPreview); if(ndsPreview) { try{ndsPreview.attachEvent("onreadystatechange", function(){checkImgSize(ndsPreview,size)})}catch(e){} ndsPreview.src = imgFile.value; } } } else { alert("您选择的不是图像文件,请重新选择."); } } function PreviewImgNow(imgDiv,imgFile) { try{getObject(imgDiv).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile}catch(e){} } //上传之前检测图片的大小 //条件是在file改变时要触发函数将缩略图显示在img上 //size 单位为KB function checkImgSize(img,size) { img = getObject(img); if(img.readyState == "complete") { var limit = size * 1024; if(img.fileSize > limit) { alert("出错!您上传的图片大小为"+(parseInt(img.fileSize/1024))+"KB,超过了"+size+"KB的限制,请重新上传"); return false }else return true; } return true; } //IE6 下缓存背景图片 if(CMInfo.Ie6) { document.execCommand("BackgroundImageCache", false, true); }
<mce:style type="text/css"><!-- .newPreview { width:400px; height:300px; FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale) } .nodis{display:none;} --></mce:style><style type="text/css" mce_bogus="1"> .newPreview { width:400px; height:300px; FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale) } .nodis{display:none;}</style> <input type="file" name="litpic" onchange="PreviewImg(this,'newPreview','ndsPreview',400)" /> <div id="newPreview" class="newPreview"></div> <img id="ndsPreview" class="nodis" />
相关文章推荐
- 兼容微信浏览器的本地图片上传预览
- jquery实现图片上传前本地预览功能
- JS上传文件前预览本地图片
- 预览待上传的本地图片,JavaScript,脚本特效
- 基于jquery实现图片上传本地预览功能
- 利用FileReader实现上传图片前本地预览
- IE8/9 本地预览上传图片
- 图片上传本地图片预览(兼容ie10)
- 关于IE6和IE7关闭窗口时提示和不提示以及上传图片前的本地预览解决办法
- jQuery实现本地预览上传图片功能
- 图片上传本地预览(回显)插件
- 兼容所有主流浏览器的图片上传本地预览(IE\FIREFOX\CHROME)
- EXTJS图片上传预览(含本地上传前预览和服务器图片预览)
- jQuery图片上传前先在本地预览
- JS实现上传本地图片前先预览
- JS上传图片本地实时预览缩略图
- 预览待上传的本地图片
- 关于IE7关闭窗口时总是提示和上传图片前的本地预览解决办法
- 关于IE6和IE7关闭窗口时提示和不提示以及上传图片前的本地预览解决办法