TypeError: 無法設置未定義或 null 引用的屬性“src” ——IE瀏覽器不兼容圖片懶加載vueLazy


異常分析:

谷歌瀏覽器訪問正常,IE瀏覽器訪問部分圖片無法正常展示,查看控制台,輸入如下錯誤信息:

經分析,只有使用過圖片懶加載的地方圖片展示才有問題,那么就應該是圖片懶加載vue-lazyload這個組件在IE瀏覽器下不兼容了。

解決方法:

既然不兼容,暫時沒有其他比較好的替代方案,那就先對IE瀏覽器環境做特殊處理了。

由於我們是在標簽中通過v-lazy指令調用懶加載的,那么如果是IE瀏覽器環境,v-lazy這個指令就無法正常工作了,那就需要我們自己添加lazy指令,把v-lazy的value賦給標簽的src屬性就可以了,具體代碼如下:

//圖片懶加載   
import vueLazy from "vue-lazyload";
var userAgent = window.navigator.userAgent;
if(userAgent.indexOf('NET') != -1) {
    //ie瀏覽器不兼容懶加載組件處理
    Vue.directive('lazy', function(el, binding) {
        el.src = binding.value
    })
} else {    
    //實現圖片懶加載
    Vue.use(vueLazy, {
        preLoad: 0.8,
        attempt: 3,
        loading: common.blankImg,
        listenEvents: ["scroll"],
        lazyComponent: true
    });
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM