JS實(shí)現(xiàn)上傳圖片實(shí)時(shí)預(yù)覽功能
前段時(shí)間在網(wǎng)絡(luò)上找的代碼,修改了一部分用在了項(xiàng)目里。原博客地址找不到了,如果原作者看到的話留言我,將于第一時(shí)間刪除。
//js本地圖片預(yù)覽,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3 function PreviewImage(fileObj) { //創(chuàng)建dom元素 var divPreviewId = 'divPreview_' + fileObj.name; var imgPreviewId = 'imgHeadPhoto_' + fileObj.name; var html='<div id="'+divPreviewId+'">'+ '<img id="'+imgPreviewId+'" src="images/moren.jpg" style="width: 120px; height: 120px; border: solid 1px #d2e2e2;" />'+ '</div>'; $('#'+divPreviewId).remove(); $(fileObj).after(html); //進(jìn)行限制 var allowExtention = ".jpg,.bmp,.gif,.png"; //允許上傳文件的后綴名document.getElementById("hfAllowPicSuffix").value; var extention = fileObj.value.substring(fileObj.value.lastIndexOf(".") + 1).toLowerCase(); var browserVersion = window.navigator.userAgent.toUpperCase(); if (allowExtention.indexOf(extention) > -1) { //格式正確 if (fileObj.files) { //HTML5實(shí)現(xiàn)預(yù)覽,兼容chrome、火狐7+等 if (window.FileReader) { var reader = new FileReader(); reader.onload = function (e) { document.getElementById(imgPreviewId).setAttribute("src", e.target.result); } reader.readAsDataURL(fileObj.files[0]); } else if (browserVersion.indexOf("SAFARI") > -1) { $('#'+divPreviewId).remove(); alert("不支持Safari6.0以下瀏覽器的圖片預(yù)覽!"); } } else if (browserVersion.indexOf("MSIE") > -1) { if (browserVersion.indexOf("MSIE 6") > -1) {//ie6 document.getElementById(imgPreviewId).setAttribute("src", fileObj.value); } else {//ie[7-9] fileObj.select(); if (browserVersion.indexOf("MSIE 9") > -1) fileObj.blur(); //不加上document.selection.createRange().text在ie9會(huì)拒絕訪問(wèn) var newPreview = document.getElementById(divPreviewId + "New"); if (newPreview == null) { newPreview = document.createElement("div"); newPreview.setAttribute("id", divPreviewId + "New"); newPreview.style.width = document.getElementById(imgPreviewId).width + "px"; newPreview.style.height = document.getElementById(imgPreviewId).height + "px"; newPreview.style.border = "solid 1px #d2e2e2"; } newPreview.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src='" + document.selection.createRange().text + "')"; var tempDivPreview = document.getElementById(divPreviewId); tempDivPreview.parentNode.insertBefore(newPreview, tempDivPreview); tempDivPreview.style.display = "none"; } } else if (browserVersion.indexOf("FIREFOX") > -1) {//firefox var firefoxVersion = parseFloat(browserVersion.toLowerCase().match(/firefox\/([\d.]+)/)[1]); if (firefoxVersion < 7) {//firefox7以下版本 document.getElementById(imgPreviewId).setAttribute("src", fileObj.files[0].getAsDataURL()); } else {//firefox7.0+ document.getElementById(imgPreviewId).setAttribute("src", window.URL.createObjectURL(fileObj.files[0])); } } else { document.getElementById(imgPreviewId).setAttribute("src", fileObj.value); } } else { $('#'+divPreviewId).remove(); alert("僅支持" + allowExtention + "為后綴名的文件!"); fileObj.value = ""; //清空選中文件 if (browserVersion.indexOf("MSIE") > -1) { fileObj.select(); document.selection.clear(); } fileObj.outerHTML = fileObj.outerHTML; } return fileObj.value; //返回路徑 }
以上所述是小編給大家介紹的JS實(shí)現(xiàn)上傳圖片實(shí)時(shí)預(yù)覽功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
合并多個(gè)ArrayBuffer場(chǎng)景及方法示例
這篇文章主要為大家介紹了合并多個(gè)ArrayBuffer方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11在DWR中實(shí)現(xiàn)直接獲取一個(gè)JAVA類的返回值的兩種方法
本文主要介紹了在DWR中實(shí)現(xiàn)直接獲取一個(gè)JAVA類的返回值的兩種方法,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2016-12-12JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名效果,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11淺析js中的every()對(duì)空數(shù)組總返回true
JavaScript?語(yǔ)言的核心部分足夠大,以至于我們很容易誤解其某些部分的工作方式,本文就來(lái)和大家一起討論下為什么JS中的?every()對(duì)空數(shù)組總返回?true,需要的可以參考下2023-09-09JavaScript極簡(jiǎn)入門教程(二):對(duì)象和函數(shù)
這篇文章主要介紹了JavaScript極簡(jiǎn)入門教程(二):對(duì)象和函數(shù),本文講解了對(duì)象基礎(chǔ)知識(shí)、函數(shù)基礎(chǔ)知識(shí)、函數(shù)調(diào)用、異常、繼承等內(nèi)容,需要的朋友可以參考下2014-10-10js位運(yùn)算在實(shí)際中使用的實(shí)例教程
我們可能很少在編程中用位運(yùn)算,如果沒(méi)深入學(xué)習(xí),可能也很難理解,下面這篇文章主要給大家介紹了關(guān)于js位運(yùn)算在實(shí)際中使用的相關(guān)資料,需要的朋友可以參考下2022-03-03