因爲火狐瀏覽器有不少代碼沒法兼容,特別是圖片的顯示,下面我介紹一種是我親自測試過能夠實現的方法javascript
<script>java
function setImagePreview() {瀏覽器
//var ix = preview.width.value測試
//var iy = form.height.value;orm
var docObj=document.getElementById("doc");圖片
var imgObjPreview=document.getElementById("preview");ip
if(docObj.files && docObj.files[0]){get
//火狐下,直接設img屬性input
imgObjPreview.style.display = 'block';it
imgObjPreview.style.width = '300px';
imgObjPreview.style.height = '120px';
//火狐7以上版本不能用上面的getAsDataURL()方式獲取,須要如下方式
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
}else{
//IE下,使用濾鏡
docObj.select();
var imgSrc = document.selection.createRange().text;
var localImagId = document.getElementById("localImag");
//必須設置初始大小
localImagId.style.width = "250px";
localImagId.style.height = "200px";
//圖片異常的捕捉,防止用戶修改後綴來僞造圖片
try{
localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
}catch(e){
alert("您上傳的圖片格式不正確,請從新選擇!");
return false;
}
imgObjPreview.style.display = 'none';
document.selection.empty();
}
return true;
}
</script>
<form name=imageform>
<input type=file name="doc" id="doc" onchange="javascript:setImagePreview();"/>
<p><div id="localImag"><img id="preview" width=-1 height=-1 style="diplay:none" /></div></p>
</form>