现需要实现图片上传之前进行预览,网上也有很多相关代码,但均有浏览器兼容性的问题。Firefox9.0以上,ie6,ie7,谷歌以及ie内核的浏览器都支持的实在找不到。
问题在于获取图片的完整路径不同,ie取到的是完整路径,加载本地图片自然没有问题,但Firefox9.0和谷歌取到的是文件名,若能解决不同浏览器都能取到图片的完整路径,问题就解决了。
function showImage(imgFile) {
var fileName = document.getElementById("fileId").value;
if (window.navigator.userAgent.indexOf("MSIE")>=1){
imgFile.select();
return document.selection.createRange().text;
}
//firefox
else if(window.navigator.userAgent.indexOf("Firefox")>=1){
if(imgFile.files){
return imgFile.files.item(0).getAsDataURL();
}
return imgFile.value;
}
}
Firefox7.0上以已经不支持getAsDataURL()方法,谷歌如何判断?求高人指点
------解决方案--------------------
楼主。。。。
试试这个方法吧:
- JScript code
function getFullPath(obj) { if (obj) { //IE if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select(); obj.blur(); // IE下取得图片的本地路径 return document.selection.createRange().text; } //firefox else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { if (obj.files) { // Firefox下取得的是图片的数据 var value = ""; try{ value = window.URL.createObjectURL(obj.files[0]); }catch(e){ value = obj.files[0].getAsDataURL(); } return value; } } return obj.value; } }
------解决方案--------------------
ff
window.URL.createObjectURL
chrome
window.webkitURL.createObjectURL ...