【转】IE7本地图片预览


 

IE7 不再支持本地图片预览?

如下代码:

<img src="file:///C:/Documents%20and%20Settings/user/桌面/1.gif">

是显示客户端桌面上文件名为 1.gif 的图片,在 IE6.0 及以前,可以显示该图片。而 IE7.0 及 FF 中,均不能显示该图片。不过 IE7.0 中有一个例外,就是如果该段代码所处的网页位于本地机上(Web 服务与浏览器为同一机器),则可以显示。

为了实现在 IE7 中预览本地图片,可使用 AlphaImageLoader,查看解决办法见下:

---------------

在 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 地址指定背景图像。假如忽略此参数,滤镜将不会作用。


 

具体操作:

  1. 为预览区域(比如要在某个 div 中预览)添加样式:filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);。
  2. 为 AlphaImageLoader 设置 src 属性。

 

示例代码:

<!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>
 <title>图片预览</title>
 <script type="text/javascript">
 function Preview(my) {
  document.getElementById("pic").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = my.value;
 }
 </script>
</head>
<body>
 <input type="file" onchange="Preview(this);" />
 <div id="pic" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);width:100px;height:100px;"></div>
</body>
</html>

posted @ 2010-08-13 20:02  SeanWang  阅读(466)  评论(0编辑  收藏  举报