背景:form中,用户在选择图片后能够预览所选择的图片,前提是不用ajax或者点击上传按钮。
主要代码:
* 获取图片url
*/
function getUrl(fileId) {
var url;
if (navigator.userAgent.indexOf("MSIE")>=1) { // IE
url = document.getElementById(sourceId).value;
} else if(navigator.userAgent.indexOf("Firefox")>0) { // Firefox
//alert(document.getElementById(sourceId).files.item(0));return;
url = window.URL.createObjectURL(document.getElementById(sourceId).files.item(0));
} else if(navigator.userAgent.indexOf("Chrome")>0) { // Chrome
url = window.URL.createObjectURL(document.getElementById(sourceId).files.item(0));
}else if(navigator.userAgent.indexOf('MicroMessenger')>-1){//wechat
url = window.webkitURL.createObjectURL(document.getElementById(sourceId).files.item(0));
}
return url;
}
function showImg(fileId, imgId) {
//显示图片
var url = getFileUrl(fileId);
document.getElementById(imgId).src = url;
}
<input id="fileId" type="file" οnchange="showImg('fileId','imgId');" name="files" />
<img id="imgId" src="" />
用js获取url过程中遇到了些问题,在微信浏览器(qq浏览器)里面获取不到,其他浏览器正常,各个浏览器内核不一样,查了资料将window.URL换成window.webkitURL才得以解决。