预览本地图片(兼容IE7|IE8|Firefox)

 一、先贴代码:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> 预览本地图片(兼容IE7|IE8|Firefox) </TITLE>
<script type = "text/javascript" language = "javascript" >
// 新增上传域
function createPic() {
    var sample = document.getElementById("pic{picID}").innerHTML;
    var pics = document.getElementById("picRoot").children;
    var lastId = 0; // 上传域编号
    if (pics.length == 0) {
        lastId = 1;
    } else {
        lastId = document.getElementById("pic" + pics.length).id.replace("pic", "");
    }
    var id = parseInt(lastId) + 1;
    if (id > 20) {
        hiAlert("达到上传上限!");
        return false;
    }
    var temp = sample.replace(/{picID}/g, id); // 替换所有{picID}
    var div = document.createElement("div");
    div.setAttribute("id", "pic" + id);
    document.getElementById("picRoot").appendChild(div);
    div.innerHTML = temp;
    return id;
}
//删除上传域
function deletePic(picid) {
    document.getElementById("pic" + picid).outerHTML = "";
}

// 浏览本地文件
function onUploadImgChange(picid) {
    var sender = document.getElementById("file" + picid);
    if (!sender.value.match(/.jpg|.gif|.png|.bmp/i)) {
        alert('图片格式无效!');
        return false;
    }
    var objPreview = document.getElementById('img' + picid);
    var objPreviewFake = document.getElementById('preview_fake' + picid);
    if (sender.files && sender.files[0]) {
        objPreview.style.display = 'block';
        objPreview.style.width = 'auto';
        objPreview.style.height = 'auto';
        // Firefox 因安全性问题已无法直接通过 input[file].value 获取完整的文件路径  
        objPreview.src = sender.files[0].getAsDataURL();
    } else if (objPreviewFake.filters) {
        // IE7,IE8 在设置本地图片地址为 img.src 时出现莫名其妙的后果  
        //(相同环境有时能显示,有时不显示),因此只能用滤镜来解决  
        // IE7, IE8因安全性问题已无法直接通过 input[file].value 获取完整的文件路径  
        sender.select();
        var imgSrc = document.selection.createRange().text;
        objPreviewFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;
              
        objPreviewFake.style.width = '200px';
        objPreviewFake.style.height = '100px';
        objPreviewFake.style.marginTop = '0px';
        objPreviewFake.style.marginLeft = '0px';
        objPreview.style.display = 'none';
    }
}
// 火狐下加载图片
function onPreviewLoad(picid) {
    var imgObj = document.getElementById("img" + picid); 
    imgObj.style.marginTop = '0px';
    imgObj.style.marginLeft = '0px';
}
</script>

 </HEAD>
 <BODY>
      <div id="picRoot">
    <div id="pic1">
        <div id="preview_wrapper1">
            <div id="preview_fake1" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image'); position:relative; ">
                <img id="img1" οnlοad="onPreviewLoad(1)" />
            </div>
        </div>
        <input id="file1" name="file1" type="file" style="width: 400px;" οnchange="onUploadImgChange(1)" />
        <span title="删除" style="width: 60px; text-align: right;"><a href="javascript:deletePic(1)">
            X&nbsp;删除</a></span>
    </div>
</div>
<div>
    <input type="button" value="继续添加" οnclick="createPic()" />
</div>
<div style="display: none">
    <div id="pic{picID}">
        <div id="preview_wrapper{picID}">
            <div id="preview_fake{picID}" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image'); position:relative; ">
                <img id="img{picID}" οnlοad="onPreviewLoad('{picID}')" />
            </div>
        </div>
        <input id="file{picID}" name="file{picID}" type="file" style="width: 400px;" οnchange="onUploadImgChange('{picID}')" />
        <span title="删除" style="width: 60px; text-align: right;"><a href="javascript:deletePic('{picID}')">
            X&nbsp;删除</a></span>
    </div>
</div>
 </BODY>
</HTML>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值