在 IE6 中,能够非常方便地利用 img 的 src 属性,实现本地图片预览,然而在 IE7 中,这样的办法却行不通。须要用 AlphaImageLoader。
AlphaImageLoader
说明:
在对象容器边界内,在对象的背景和内容之间显示一张图片。并提供对此图片的剪切和改变尺寸的操作。假设加载的是PNG(Portable Network Graphics)格式,则0%-100%的透明度也被提供。
语法:
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )
enabled:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。 true:默认值。滤镜激活。 false:滤镜被禁止。
sizingMethod:可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。 crop:剪切图片以适应对象尺寸。 image:默认值。增大或减小对象的尺寸边界以适应图片的尺寸。 scale:缩放图片以适应对象的尺寸边界。
src:必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此參数,滤镜将不会作用。
详细操作:
<?xml version="1.0" encoding="gb2312"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>本地图片预览代码(支持 IE6、IE7)</title> <style type="text/css"> #newPreview { filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale); } </style> <script type="text/javascript" language="javascript"> <!-- function PreviewImg(imgFile) { //原来的预览代码,不支持 IE7。 var oldPreview = document.getElementById("oldPreview"); oldPreview.innerHTML = "<img src=/"file:////" + imgFile.value + "/" width=/"80/" height=/"60/" />"; //新的预览代码,支持 IE6、IE7。 var newPreview = document.getElementById("newPreview"); newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value; newPreview.style.width = "80px"; newPreview.style.height = "60px"; } --> </script> </head> <body> <p>说明:下面针对的是互联网情况,假设您在本地作測试,比方输入的地址是:http://127.0.0.1/...,则能够看到所有预览。</p> <hr /> <p>假设您使用的是 IE6,则能够看到下面预览;假设您使用的是 IE7,则看不到下面预览。</p> <div id="oldPreview"></div> <hr /> <p>不论您使用的是 IE6 还是 IE7,均能够看到下面预览。</p> <div id="newPreview"></div> <hr /> <p>请选择一个图片进行预览:<input type="file" size="20" onchange="javascript:PreviewImg(this);" /></p> </body> </html>