当前位置:编程学习 > C#/ASP.NET >>

问一个关于IE6 和 IE7 下img.src的问题

我现在做一个上传图片预览,即 在<input type= 'file' id='file' Onchange='get()'>里加个Onchange事件读取本地图片的src路径,在ie6中直接把img的id取到然后imgid.src = upfile.value, upfile为上传文本框中的绝对路径,大概是这样:
function get()
{
    var upfile = document.getElementById('file');
    var img = document.getElementById('img');
    if(upfile.value != "")
    {
        img.src = upfile.value;
    }
}

但是这个方法一到ie7下面就行不通了,图片位置始终都是一个x的图标,我也上网查了以下,说ie7好象是为了什么安全之类的,不支持,但有人给出了一些代码,说是要设置一个容器比如div,设置div的css属性:filter:progid:DXImage...什么的,我记不清了,我也照着打了上去,但是还是无法显示.

哪位高人能帮我解决这个问题啊? --------------------编程问答-------------------- 还没有遇到过 --------------------编程问答-------------------- 关注, 我也遇到此问题了... --------------------编程问答-------------------- 奇怪了 我也是ie7怎么就没问题

<body>
<img id="img" src="" />
<input id="input" type="text" value="http://zi.csdn.net/30060.gif" />
<input type="button" value="get image" onclick="get()" />
</body>
<script>
function get()
{
var obj1 = document.getElementById("input");
var obj2 = document.getElementById("img");
obj2.src = obj1.value;
}
</script>
--------------------编程问答-------------------- 在IE6中可以很轻易的预览本地图片,只要指定 img的src就可以了。
但是在IE7中就不行了。
必须使用AlphaImageLoader属性
例:
 
<style type="text/css">
#newPreview
{
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
}
</style>
<script type="text/javascript" language="javascript">
function PreviewImg(imgFile)
{   
    var newPreview = document.getElementById("newPreview");
 
    newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
    newPreview.style.width = "80px";
    newPreview.style.height = "60px";
}

</script>
 
<div id="newPreview"></div>
<p>请选择一个图片进行预览:<input type="file" size="20" onchange="javascript:PreviewImg(this);" /></p>


在这里: 
 filter:progid:DXImageTransform.Microsoft.AlphaImageLoader 是一个css滤镜,支持IE5.5以上版本
 filter: progid: DXImageTransform.Microsoft.AlphaImageLoader( enabled=bEnabled, sizingMethod=sSize, src=sURL)
属性:
enabled : 可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true | false
      true : 默认值。滤镜激活。
      false : 滤镜被禁止。
具体说明: 
在对象容器边界内,在对象的背景和内容之间显示一张图片。并提供对此图片的剪切和改变尺寸的操作。如果载入的是PNG格式,则0%-100%的透明度也被提供。 
PNG格式的图片的透明度不妨碍你选择文本。也就是说,你可以选择显示在PNG格式的图片完全透明区域后面的内容
--------------------编程问答-------------------- [img=javascript:alert('123123123');][/img] --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,