最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決js圖片加載時出現(xiàn)404的問題

 更新時間:2020年11月30日 17:19:39   作者:天梯夢  
這篇文章主要為大家詳細介紹了解決js圖片加載時出現(xiàn)404問題的方法,具有一定的參考價值,這方面有困惑的朋友可以參考一下

運營網(wǎng)站久了之后,無法避免會出現(xiàn)圖片404的情況,原因可能是圖片文件本來就不存在或目前不存在。常見的解決方案是將404圖片隱藏或者是替換為默認的圖片。 

img標(biāo)簽事件屬性

img標(biāo)簽可使用的時間屬性有:

onabort, onbeforeunload, onblur, onchange, onclick, oncontextmenu, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onfocus, onkeydown, onkeypress, onkeyup, onload, onmessage, onmousedown, onmousemove, onmouseover, onmouseout, onmouseup, onmousewheel, onresize, onscroll, onselect, onsubmit, onunload

img標(biāo)簽常用的事件如下:

onerror:圖像加載過程中發(fā)生錯誤時被觸發(fā)。
onabort:圖片加載的時候,用戶通過點擊停止加載時觸發(fā),通常在這里觸發(fā)一個提示:“圖片正在加載”。
onload:當(dāng)圖片加載完成之后觸發(fā)。

1. 對圖片監(jiān)聽onerror事件

<img src="someimage.png" onerror="imgError(this);" /> 
 
// 原生JS: 
function imgError(image){ 
 // 隱藏圖片 
 image.style.display = 'none'; 
 // 替換為默認圖片 
 // document.getElementById("img").setAttribute("src", "images/demo.png"); 
} 
 
// 使用jQuery處理: 
function imgError(image){ 
 $(image).hide(); 
 // $(this).attr("src", "images/demo.png"); 
} 

注意:需要將處理函數(shù)定義在head,防止圖片加載出錯時沒有讀取到處理函數(shù)

2. 使用jQuery監(jiān)聽error

// 通常不會再HTML里面內(nèi)聯(lián)js,可以使用.error對圖片進行監(jiān)聽處理 
$('#test img').error(function() { 
 $(this).hide(); 
 // $(this).attr("src", "images/demo.png"); 
}); 

注意:jQuery加載需要在img前,處理函數(shù)需在img后

3. 使用函數(shù)處理

// 原生JS解決方案 
function $id(id) { 
 return !id || id.nodeType === 1 ? id : document.getElementById(id); 
} 
function isType(o, t) { 
 return (typeof o).indexOf(t.charAt(0).toLowerCase()) === 0; 
} 
 
// 主要邏輯 
function image(src, cfg) { 
 var img, prop, target; 
 cfg = cfg || (isType(src, 'o') ? src : {}); 
 
 img = $id(src); 
 if (img) { 
 src = cfg.src || img.src; 
 } else { 
 img = document.createElement('img'); 
 src = src || cfg.src; 
 } 
 
 if (!src) { 
 return null; 
 } 
 
 prop = isType(img.naturalWidth,'u') ? 'width' : 'naturalWidth'; 
 img.alt = cfg.alt || img.alt; 
 
 // Add the image and insert if requested (must be on DOM to load or 
 // pull from cache) 
 img.src = src; 
 
 target = $id(cfg.target); 
 if (target) { 
 target.insertBefore(img, $id(cfg.insertBefore) || null); 
 } 
 
 // Loaded? 
 if (img.complete) { 
 if (img[prop]) { 
 if (isType(cfg.success,'f')) { 
 cfg.success.call(img); 
 } 
 } else { 
 if (isType(cfg.failure,'f')) { 
 cfg.failure.call(img); 
 } 
 } 
 } else { 
 if (isType(cfg.success,'f')) { 
 img.onload = cfg.success; 
 } 
 if (isType(cfg.failure,'f')) { 
 img.onerror = cfg.failure; 
 } 
 } 
 
 return img; 
} 

以上函數(shù)有許多用處:

1. 獲取圖片信息:圖片是否可下載,圖片寬高

image('img',{ 
 success : function () { alert(this.width + "-" + this.height); }, 
 failure : function () { alert('image 404!'); }, 
}); 
 
// 驗證資源是否下載 
image('images/banner/banner_2.jpg', { 
 success : function () {console.log('sucess')}, 
 failure : function () {console.log('failure')}, 
 target : 'myContainerId', 
 insertBefore : 'someChildOfmyContainerId' 
}); 

2. 下載并插入圖片

var report = $id('report'), 
 callback = { 
 success : function () { 
 report.innerHTML += '<p>Success - ' + this.src + ' ('+this.offsetWidth+'x'+this.offsetHeight+')</p>'; 
 }, 
 failure : function () { 
 report.innerHTML += '<p>Failure - ' + this.src + ' ('+this.offsetWidth+'x'+this.offsetHeight+')</p>'; 
 }, 
 target : 'target' 
 }; 
 
image('img', callback); 
image('images/banner/banner_2.jpg', callback); 

以上就是js針對圖片加載時出現(xiàn)404問題的解決辦法,希望大家有所收獲。

相關(guān)文章

  • Javascript BOM學(xué)習(xí)小結(jié)(六)

    Javascript BOM學(xué)習(xí)小結(jié)(六)

    BOM:BrowserObjectModel,瀏覽器對象模型,提供JS中對瀏覽器的各種操作的對象,是JS應(yīng)用中唯一沒有相關(guān)標(biāo)準(zhǔn)的部分,這事BOM經(jīng)常出現(xiàn)問題的所在,主要用于處理瀏覽器窗口與框架,瀏覽器特有的JS擴展也被默認為BOM的一部分,而各瀏覽器之間的公有對象就成了默認的標(biāo)準(zhǔn)
    2015-11-11
  • JavaScript 開發(fā)工具webstrom使用指南

    JavaScript 開發(fā)工具webstrom使用指南

    本文給大家推薦了一款非常熱門的javascript開發(fā)工具webstrom,著重介紹了webstrom的特色功能、設(shè)置技巧、使用心得以及快捷鍵匯總,非常的全面。
    2014-12-12
  • 詳解uniapp如何處理圖片加載過程中的錯誤

    詳解uniapp如何處理圖片加載過程中的錯誤

    這篇文章給大家詳細介紹了uniapp如何處理圖片加載過程中的錯誤,文章通過代碼示例介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-10-10
  • js判斷日期時間有效性的方法

    js判斷日期時間有效性的方法

    這篇文章主要介紹了判斷js驗證日期時間有效性的方法,需要的朋友可以參考下
    2015-10-10
  • 開發(fā)跨瀏覽器javascript常見注意事項

    開發(fā)跨瀏覽器javascript常見注意事項

    對于javascript的開發(fā)人員來說,多瀏覽器的支持性,一直是個問題,每次都要經(jīng)過測試,多個瀏覽器,才能使用下面一些常見的一些注意事項。
    2009-01-01
  • onkeypress字符按鍵兼容所有瀏覽器使用介紹

    onkeypress字符按鍵兼容所有瀏覽器使用介紹

    使用onkeypress字符按鍵兼容所有瀏覽器,感興趣的朋友可以參考下,希望對你學(xué)習(xí)js事件有所幫助
    2013-04-04
  • Javascript實現(xiàn)圖片輪播效果(二)圖片序列節(jié)點的控制實現(xiàn)

    Javascript實現(xiàn)圖片輪播效果(二)圖片序列節(jié)點的控制實現(xiàn)

    這篇文章主要介紹了Javascript實現(xiàn)圖片輪播效果(二)圖片序列節(jié)點的控制實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • BootStrap Typeahead自動補全插件實例代碼

    BootStrap Typeahead自動補全插件實例代碼

    本文給大家介紹BootStrap Typeahead自動補全插件的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2016-08-08
  • JS實現(xiàn)簡單計數(shù)器

    JS實現(xiàn)簡單計數(shù)器

    這篇文章主要為大家詳細介紹了JS實現(xiàn)簡單計數(shù)器,有加、減和零三個按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 微信運維交互機器人的示例代碼

    微信運維交互機器人的示例代碼

    這篇文章主要介紹了微信運維交互機器人的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11

最新評論

阿拉善左旗| 淮安市| 神农架林区| 正阳县| 车险| 奇台县| 土默特右旗| 丰宁| 万宁市| 隆回县| 历史| 栾城县| 交城县| 广汉市| 邓州市| 伊宁县| 抚顺市| 象州县| 区。| 佳木斯市| 玉树县| 白银市| 沅江市| 内江市| 拉萨市| 中西区| 辽宁省| 天水市| 济源市| 赤城县| 大理市| 长寿区| 卫辉市| 无锡市| 临西县| 扎囊县| 台山市| 伊宁县| 章丘市| 浠水县| 马公市|