基于JavaScript實(shí)現(xiàn)本地圖片預(yù)覽
本文實(shí)例為大家分享了js本地圖片預(yù)覽的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <!-- <!DOCTYPE html>一定要放在第一行,除非上面都是空行 在HTML規(guī)范中,單獨(dú)存在的標(biāo)簽是不需要使用/來(lái)自我關(guān)閉的,比如<br>,<input>,<hr>等等這樣的標(biāo)簽都是符合語(yǔ)法的. 在XHTML規(guī)范中,單獨(dú)存在的標(biāo)簽要按照XML的語(yǔ)法規(guī)則進(jìn)行自我關(guān)閉,上面三個(gè)標(biāo)簽就應(yīng)寫(xiě)成<br />,<input />,<hr /> --> <html> <head> <meta charset="utf8"> <style> input[type=radio] { /* 按鈕與文字對(duì)齊 */ vertical-align:middle; } input[type=file] { display: block; } #img { width: 200px; height: 200px; border: 1px solid black; margin-top: 10px; } </style> </head> <body> <input type="radio" name="previewType" value="fileReader" onChange="onPreviewTypeChange()">fileReader <input type="radio" name="previewType" value="createURL" onChange="onPreviewTypeChange()">createURL <hr> <input type="file" id="imgFile" onChange="imgChange()" value="test.jpg"> <img id="img"> <script> var previewTypes = document.getElementsByName("previewType"); var imgFile = document.getElementById("imgFile"); var img = document.getElementById("img"); function getPreviewType() { for(var i=0; i<previewTypes.length; i++) { if(previewTypes[i].checked) { return previewTypes[i].value; } } } function onPreviewTypeChange() { imgChange(event.target.value); } function imgChange(type) { img.src = ""; var files = imgFile.files; console.log(files); if(!files || files.length === 0) { return; } var file = files[0]; if(!type) { type = getPreviewType(); if(!type) { return; } } switch(type) { case "fileReader": var fr = new FileReader(); fr.onload = function(progressEvent) { console.log(progressEvent); img.src = progressEvent.target.result; } fr.readAsDataURL(file); break; case "createURL": img.onload = function() { //釋放一個(gè)之前通過(guò)調(diào)用 URL.createObjectURL() 創(chuàng)建的已經(jīng)存在的 URL 對(duì)象。 URL.revokeObjectURL(img.src); } img.src = URL.createObjectURL(file); break; } } </script> </body> </html>
fileReader.readAsDataURL
URL.createObjectURL
可以看出URL實(shí)質(zhì)上是以“blob:”打頭的,后面跟著32位的UUID(8-4-4-4-12)的結(jié)構(gòu)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS預(yù)覽圖像將本地圖片顯示到瀏覽器上
- Javascript圖片上傳前的本地預(yù)覽實(shí)例
- javascript IE7 瀏覽器本地圖片預(yù)覽
- 在頁(yè)面預(yù)覽客戶(hù)端本地圖片的js代碼(兼容FF IE)
- 純JS實(shí)現(xiàn)本地圖片預(yù)覽的方法
- javascript firefox不顯示本地預(yù)覽圖片問(wèn)題的解決方法
- JS中利用FileReader實(shí)現(xiàn)上傳圖片前本地預(yù)覽功能
- JavaScript實(shí)現(xiàn)圖片本地預(yù)覽功能【不用上傳至服務(wù)器】
- 原生js FileReader對(duì)象實(shí)現(xiàn)圖片上傳本地預(yù)覽效果
- JavaScript實(shí)現(xiàn)預(yù)覽本地上傳圖片功能完整示例
- js實(shí)現(xiàn)的在本地預(yù)覽圖片功能示例
相關(guān)文章
uploadify插件實(shí)現(xiàn)多個(gè)圖片上傳并預(yù)覽
這篇文章主要為大家詳細(xì)介紹了uploadify插件實(shí)現(xiàn)多個(gè)圖片上傳并預(yù)覽,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09JavaScript實(shí)現(xiàn)篩選數(shù)組
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)篩選數(shù)組,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03微信小程序使用this.setData()遇到的問(wèn)題及解決方案詳解
this.setData估計(jì)是小程序中最經(jīng)常用到的一個(gè)方法,但是要注意其實(shí)他是有限制的,忽略這些限制的話,會(huì)導(dǎo)致數(shù)據(jù)無(wú)法更新,下面這篇文章主要給大家介紹了關(guān)于微信小程序使用this.setData()遇到的問(wèn)題及解決方案,需要的朋友可以參考下2022-08-08解決eclipse中沒(méi)有js代碼提示的問(wèn)題
今天小編就為大家分享一篇解決eclipse中沒(méi)有js代碼提示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10JavaScript的arguments對(duì)象應(yīng)用示例
使用特殊對(duì)象 arguments,開(kāi)發(fā)者無(wú)需明確指出參數(shù)名,就能訪問(wèn)它們,下面為大家介紹下其具體的應(yīng)用2014-09-09使用JavaScript實(shí)現(xiàn)一個(gè)拖拽縮放效果
這篇文章主要介紹了如何使用JS實(shí)現(xiàn)一個(gè)這樣的拖拽縮放效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05html判斷當(dāng)前頁(yè)面是否在iframe中的實(shí)例
下面小編就為大家?guī)?lái)一篇html判斷當(dāng)前頁(yè)面是否在iframe中的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11JavaScript樹(shù)型數(shù)據(jù)與一維數(shù)組相互轉(zhuǎn)換方式
這篇文章主要介紹了JavaScript樹(shù)型數(shù)據(jù)與一維數(shù)組相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06