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 设计模式(二) 闭包
May 26 Javascript
js弹出对话框方式小结
Nov 17 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 Javascript
详解基于javascript实现的苹果系统底部菜单
Dec 02 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
使用vue-resource进行数据交互的实例
Sep 02 Javascript
JS实现移动端整屏滑动的实例代码
Nov 10 Javascript
利用JS测试目标网站的打开响应速度
Dec 01 Javascript
ES6下子组件调用父组件的方法(推荐)
Feb 23 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
Nov 01 Javascript
微信小程序中的上拉、下拉菜单功能
Mar 13 Javascript
详解Vue中的watch和computed
Nov 09 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图片裁剪函数(保持图像不变形)
2014/05/04 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
学习ExtJS table布局
2009/10/08 Javascript
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
checkbox在vue中的用法小结
2018/11/13 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python如何实现爬取B站视频
2020/05/20 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
读书心得体会
2013/12/28 职场文书
高二生物教学反思
2014/01/27 职场文书
全民健身日活动方案
2014/01/29 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
奔腾年代观后感
2015/06/09 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL