js判断图片是否存在,不存在则替换为默认图片

方法一:利用image对象的onerror事件来判断,出错则更换image对象的src为默认图片的URL。

<img src="图片的url地址" alt="图片XX" onerror="this.src='默认图片的url地址'">

<img ng-src="{{mesrc}}" alt="me" class="online" οnerrοr="javascript:this.src='styles/img/userFirst.jpg'">  //chorme 和 firefox 测试正常

<img ng-src="{{mesrc}}" alt="me" class="online" οnerrοr="this.src='styles/img/userFirst.jpg'">  //chorme 和 firefox测试正常


 注意:如果使用不当,会造成死循环。比如:当【默认图片的url地址】也加载不成功(比如网速比较慢的时候)或不存在的话,

就会反复的加载(触发onerror),最后造成堆栈溢出错误。

解决方法:
 
第一种:
去掉 onerror 代码;或者更改 onerror 代码为其它;或者确保 onerror 中的图片足够小,并且存在。
 
第二种:
 
    function nofind(){
    
        var img=event.srcElement;
            
        img.src="styles/img/userFirst.jpg";
            
        img.οnerrοr=null; // 控制不要一直跳动
        
    }

<img ng-src="{{mesrc}}" alt="me" class="online" οnerrοr="nofind();" > //方法是对的,但我选择前者。

效果图:



参考文章: 

http://www.cnblogs.com/flowers-yang/p/3419067.html

          http://www.bcty365.com/content-69-631-1.html

<img src="图片的url地址" alt="图片XX" onerror="this.src='默认图片的url地址'">

 注意:如果使用不当,会造成死循环。比如:当【默认图片的url地址】也加载不成功(比如网速比较慢的时候)或不存在的话,就会反复的加载,最后造成堆栈溢出错误。


### 回答1: 当图片渲染404时,Vue提供了一种解决方案,即使用`v-bind`指令绑定一个`onerror`事件,当图片加载失败时,触发`onerror`事件,我们可以在该事件中指定一个默认图片地址。具体实现如下: ```html <template> <img v-bind:src="imageUrl" v-bind:onerror="setDefaultImage" /> </template> <script> export default { data() { return { imageUrl: "http://example.com/image.jpg", defaultImageUrl: "http://example.com/default.jpg", }; }, methods: { setDefaultImage(event) { event.target.src = this.defaultImageUrl; }, }, }; </script> ``` 在上面的代码中,我们在`<img>`标签上使用了`v-bind`指令绑定了`src`属性和`onerror`事件。当图片加载失败时,会触发`onerror`事件,并执行`setDefaultImage`方法。`setDefaultImage`方法中,我们将图片的`src`属性修改为默认图片的地址,从而实现了默认图片的显示。 ### 回答2: 在Vue中,当图片渲染404时,可以通过使用v-bind指令和v-on指令来添加默认图片。具体步骤如下: 1. 在Vue组件中,为需要渲染图片的img标签添加v-bind指令,将图片链接绑定到一个变量上。例如: ``` <img v-bind:src="imageUrl" v-on:error="handleImageError"> ``` 2. 在data钩子函数中,定义一个默认图片的链接,并将其赋值给imageUrl变量。例如: ``` data() { return { imageUrl: '默认图片链接' } }, ``` 3. 在methods钩子函数中,创建一个名为handleImageError的方法,用于处理图片加载错误。这个方法会在图片加载错误时被触发。例如: ``` methods: { handleImageError() { this.imageUrl = '默认图片链接'; } } ``` 4. 当图片加载错误时,handleImageError方法会被调用,将默认图片的链接赋值给imageUrl变量。这样就能在图片渲染404时显示默认图片。 以上就是在Vue中如何添加默认图片的步骤。通过使用v-bind指令将图片链接绑定到变量上,并在v-on指令中添加一个错误处理方法,即可实现在图片渲染404时显示默认图片的功能。 ### 回答3: 在Vue中,当image图片加载失败时,可以通过添加默认图片来替代展示。 首先,在data中定义一个默认图片的URL地址: ```javascript data() { return { defaultImageUrl: '/path/to/default-image.png' } } ``` 然后,在<img>标签中使用v-bind指令绑定一个属性,使用三元表达式来判断图片地址是否为404,如果是则使用默认图片URL: ```javascript <template> <div> <img v-bind:src="imageUrl" v-bind:alt="imageAlt" v-bind:title="imageTitle" /> </div> </template> <script> export default { data() { return { imageUrl: '/path/to/image.png', // 图片地址 imageAlt: 'Image Alt', // 图片alt属性 imageTitle: 'Image Title' // 图片title属性 } }, methods: { handleImageError(event) { if (event.target && event.target.src !== this.defaultImageUrl) { event.target.src = this.defaultImageUrl; } } }, mounted() { this.$nextTick(() => { const image = this.$el.querySelector('img'); if (image) { image.addEventListener('error', this.handleImageError); } }); }, beforeDestroy() { const image = this.$el.querySelector('img'); if (image) { image.removeEventListener('error', this.handleImageError); } } } </script> ``` 在上述代码中,handleImageError()为图片加载错误的回调函数,当图片加载失败时,该函数会将图片的src属性替换默认图片的URL地址。 最后,在mounted钩子函数中,通过querySelector获取到img元素,并给它绑定error事件,在事件触发时执行handleImageError方法。在beforeDestroy钩子函数中,移除error事件的绑定,防止内存泄漏。 这样,当图片加载失败时,会自动替换默认图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值