JavaScript通过使用onerror设置默认图像显示代替alt


Posted in Javascript onMarch 01, 2016

JavaScript代码

 //图像加载出错时的处理
function errorImg(img) {
img.src = "默认图片.jpg";
img.onerror = null;
}

html代码

<img width="32" height="32" src="1.jpg" onerror="errorImg(this)" />

为了美观当网页图片不存在时不显示叉叉图片

当在页面显示的时候,万一图片被移动了位置或者丢失的话,将会在页面显示一个带X的图片,很是影响用户的体验。即使使用alt属性给出了”图片XX”的提示信息,也起不了多大作用。
其实,可以这样处理:当图片不存在的时候,会触发onerror事件,我们可以在该事件中做一下补救的工作,比如:

1、让这个图片元素隐藏:

为了美观当网页图片不存在时不显示叉叉图片 src="图片的url地址" alt="图片XX" onerror="this.style.display='none'"/>

2、用默认的图片替换:

为了美观当网页图片不存在时不显示叉叉图片 src="图片的url地址" alt="图片XX" onerror="this.src='默认图片的url地址'"/>

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

因此, 需要用下面两种方法解决:

a、更改 onerror 代码为其它处理方式或者确保 onerror 中的默认图片足够小,并且存在。

b、控制onerror事件只触发一次,需要增加这句话:this.onerror=null; 增加后如下:

为了美观当网页图片不存在时不显示叉叉图片 src="图片的url地址" alt="图片XX" onerror="this.src='默认图片的url地址;this.onerror=null'"/>

经测试,上面的方法在IE各个版本及谷歌、火狐浏览器中都支持。

Javascript 相关文章推荐
用javascript实现页面打印的三种方法
Mar 05 Javascript
jquery 实现的全选和反选
Apr 15 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
Dec 22 Javascript
一种新的javascript对象创建方式Object.create()
Dec 28 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 Javascript
node-http-proxy修改响应结果实例代码
Jun 06 Javascript
AngularJS实现星星等级评分功能
Sep 24 Javascript
Vue.js实现输入框绑定的实例代码
Aug 24 Javascript
微信小程序之圆形进度条实现思路
Feb 22 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
Dec 29 jQuery
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
Vue实现base64编码图片间的切换功能
Dec 04 Javascript
jQuery增加与删除table列的方法
Mar 01 #Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 #Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 #Javascript
JavaScript Array对象详解
Mar 01 #Javascript
jQuery计算文本框字数及限制文本框字数的方法
Mar 01 #Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 #Javascript
原生javascript实现解析XML文档与字符串
Mar 01 #Javascript
You might like
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
Python中暂存上传图片的方法
2015/02/18 Python
linux下python抓屏实现方法
2015/05/22 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
浅谈python对象数据的读写权限
2016/09/12 Python
用Django实现一个可运行的区块链应用
2018/03/08 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
final, finally, finalize的区别
2012/03/01 面试题
教师教学评估方案
2014/05/09 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
java设计模式--七大原则详解
2021/07/21 Java/Android
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js