要实现本地图片的预览,查了好多网站,下面是一个大家比较认可的方法.代码如下:
<script type="text/javascript"> 
function CloseWin()

window.opener=null;
window.open("","_self");
window.close(); 
}function Preview(imgFile)

document.getElementById("pic").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;} 
</script> <a href="javascript:CloseWin();"> 点击这里无提示关闭当前窗口</a><br /> 请选择要预览的图片:<input type="file" onchange="javascript:Preview(this);" /><br />
<div id="pic" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);width:400px;height:200px;"></div>很多人都是这样的方法,我相信这个方法本身是没有问题的,但是不知道怎么回事,在我的机器上运行时,当运行到
document.getElementById("pic").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
这一行时,就报错,说是未指明的误.
不知道大家有没有遇到这种情况的.我把运行的网站也加入到信任区了还是不行.
有哪位高手可以帮忙解决一下这个问题呢?
谢谢各位不吝赐教!

解决方案 »

  1.   

    IE5.5-8下都可用,ff3下不可用(ff3下只能得到文件名,得不到完整的路径)
    <script type="text/javascript">
    function $(id){
    return document.getElementById(id);
    }

    function preview(file, img){
    var nImg = document.createElement('img');
    nImg.id = img.id;
    nImg.src = 'file:\/\/\/' + file.value.replace(/\\/g, '\/');
    img.parentNode.replaceChild(nImg, img);
    }
    </script>
    <input type="file" onchange="preview(this, $('test'))"/><img id="test" />
      

  2.   

    ie里可以设置不允许在上传的时候显示目录的。imgFile.value你其实得到的只是文件名,不能得到路径的。所以无法进行预览的。要预览,需要改变浏览器的设置,在安全性里面进行修改:上传文件时显示本地目录
      

  3.   

    把图片当成背景色赋值给div
    不就完了吗
    干嘛这么麻烦