异常分析:
谷歌浏览器访问正常,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
});
}