js/jquery判斷圖片是否存在的函數(shù)代碼
1、js函數(shù)判斷
這個(gè)方法,我用了下,同一個(gè)圖片路徑,vue的環(huán)境下,本地是可以的,但是不知道為什么到了正式環(huán)境,存在的圖片也被判斷為了false
//判斷圖片是否存在 function checkImgExists(imgurl) { var ImgObj = new Image(); //判斷圖片是否存在 ImgObj.src = imgurl; //存在圖片 if (ImgObj.fileSize > 0 || (ImgObj.width > 0 && ImgObj.height > 0)) { return true; } else { return false; } }
注意:使用這種方法進(jìn)行判斷圖片是否存在時(shí),不存在時(shí)會(huì)報(bào)404錯(cuò)誤,建議使用ajax去后臺(tái)查看圖片是否尋在。
若不介意404錯(cuò)誤,<img>標(biāo)簽有onerror事件可以在找不到當(dāng)前的src時(shí)去加載onerror事件去找到默認(rèn)圖片。
2、JS+XMLHTTP
var oreq = new ActiveXObject("Microsoft.XMLHTTP")(僅限IE內(nèi)核) oreq.open("Get","blog/attachments/month_0606/s2006610204959.jpg",false); oreq.send(); alert(oReq.status) if(oReq.status==404) alert('不存在'); else alert("存在") }
3、可以使用img標(biāo)簽的error方法
js:onerror后面可以直接放上備用圖片,也可以直接寫方法
<img onerror="javascript:this.src='https://t.jb51.net/upload/vod/3a03d.jpg';" src="http://www.dbjr.com.cn/upload/vod/3a03d.jpg" >
vue:error后面跟方法,根據(jù)變量顯示別的
<img v-if="item.showImg" @error="noExistImg(item)" :src="`${constants.ICONS_CHANNEL}/${item.channel.toLowerCase()}.png`" style="width: 45px;" alt=""> <span v-else class="textLogo">{{item.channelName.substr(0,1)}}</span> noExistImg (record) { this.publishAccountArr.map(item => { if (item.id === record.id) { item.showImg = false } }) }
4、幾種函數(shù)小結(jié)
function CheckImgExists(imgurl) { var ImgObj = new Image(); //判斷圖片是否存在 ImgObj.src = imgurl; //沒有圖片,則返回-1 if (ImgObj.fileSize > 0 || (ImgObj.width > 0 && ImgObj.height > 0)) { return true; } else { return false; } } // 3 function validateImage(url) { var xmlHttp; if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } xmlHttp.open("Get", url, false); xmlHttp.send(); if (xmlHttp.status == 404) return false; else return true; }
<img src="./../image/109951166130586688.jpg" alt="" onerror="javascript:this.src='./../image/37f5e12a82766d690accd5ee86a08b0.png';">
5、JS中驗(yàn)證圖片是否存在
使用場(chǎng)景:當(dāng)不確定圖片是否存在,實(shí)現(xiàn)當(dāng)圖片不存在時(shí),自動(dòng)發(fā)出請(qǐng)求到服務(wù)端生成新圖片或記錄日志
代碼一
// 驗(yàn)證圖片是否存在 const checkImgExists = (imgUrl: string) => { return new Promise(function (resolve, reject) { const ImgObj = new Image(); ImgObj.src = imgUrl; ImgObj.onload = (res) => { resolve(res); } ImgObj.onerror = (err) => { reject(err) } }) }
代碼二
checkImgExists(imgUrl) { return new Promise(function (resolve, reject) { const ImgObj = new Image(); ImgObj.src = imgUrl; ImgObj.onload = (res) => { resolve(res); }; ImgObj.onerror = (err) => { reject(err); }; }); } checkImgExists(url) .then(() => { this.imgUrl = url; }) .catch(() => { this.imgUrl = null; });
到此這篇關(guān)于js/jquery判斷圖片是否存在的函數(shù)代碼的文章就介紹到這了,更多相關(guān)jquery判斷圖片是否存在內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jQuery遍歷對(duì)象、數(shù)組、集合實(shí)例
這篇文章主要介紹了jQuery遍歷對(duì)象、數(shù)組、集合實(shí)例,本文直接給出實(shí)例代碼,在代碼中有詳細(xì)注釋來(lái)解釋代碼的作用,需要的朋友可以參考下2014-11-11用jquery獲取自定義的標(biāo)簽屬性的值簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇用jquery獲取自定義的標(biāo)簽屬性的值簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09JQuery WEUI Select 組件增加搜索欄示例demo
這篇文章主要介紹了JQuery WEUI Select 組件增加搜索欄示例demo,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-10-10jQuery實(shí)現(xiàn)嵌套選項(xiàng)卡功能
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)嵌套選項(xiàng)卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08JQuery跨Iframe選擇實(shí)現(xiàn)代碼
JQuery跨Iframe選擇實(shí)現(xiàn),下面也通過(guò)用DOM方法與jquery方法結(jié)合的方式實(shí)現(xiàn)了,需要的朋友可以參考下。2010-08-08jQuery插件jquery-barcode實(shí)現(xiàn)條碼打印的方法
這篇文章主要介紹了jQuery插件jquery-barcode實(shí)現(xiàn)條碼打印的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery插件jquery-barcode的功能及打印條碼的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11js jquery獲取當(dāng)前元素的兄弟級(jí) 上一個(gè) 下一個(gè)元素
js獲取方法要比jq的方法麻煩的多,主要是因?yàn)镕F瀏覽器,因?yàn)镕F瀏覽器也會(huì)把換行當(dāng)作dom元素,下面跟著小編一起來(lái)學(xué)習(xí)js jquery獲取當(dāng)前元素的兄弟級(jí) 上一個(gè) 下一個(gè)元素的,需要的朋友一起來(lái)學(xué)習(xí)吧2015-09-09基于EasyUI的基礎(chǔ)之上實(shí)現(xiàn)樹形功能菜單
這篇文章主要介紹了基于EasyUI的基礎(chǔ)之上實(shí)現(xiàn)樹形功能菜單,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06jQuery實(shí)現(xiàn)列表自動(dòng)循環(huán)滾動(dòng)鼠標(biāo)懸停時(shí)停止?jié)L動(dòng)
需要在頁(yè)面中一個(gè)小的區(qū)域循環(huán)滾動(dòng)展示新聞并且鼠標(biāo)懸停時(shí)停止?jié)L動(dòng)并提示,離開后,繼續(xù)滾動(dòng),具體實(shí)現(xiàn)如下,喜歡的朋友可以參考下2013-09-09BootStrap glyphicon圖標(biāo)無(wú)法顯示的解決方法
如果不注意bootstrap引入css和fonts的規(guī)范,則可能會(huì)導(dǎo)致bootstrap 在顯示glyphicon圖標(biāo)時(shí)無(wú)法正常顯示,顯示為方框。該怎么解決呢?下面小編給大家解答下2016-09-09