JS实现判断图片是否加载完成的方法分析
本文实例讲述了JS实现判断图片是否加载完成的方法。分享给大家供大家参考,具体如下:
1、onload事件
loading...
document.getElementsByTagName("img")[0].onload=function(){ document.getElementsByTagName("p")[0].innerHTML='加载完成!'; }
2、complete属性
loading...
functionimgLoad(img,callback){ vartimer=setInterval(function(){ if(img.complete){ callback(img); clearInterval(timer); } },50); } imgLoad(document.getElementsByTagName("img")[0],function(){ document.getElementsByTagName("p")[0].innerHTML='加载完成!'; })
3、onreadystatechange事件
loading...
document.getElementsByTagName("img")[0].onreadystatechange=function(){ if(this.readyState=="complete"||this.readyState=="loaded") document.getElementsByTagName("p")[0].innerHTML='加载完成'; }
注意:只有IE6-IE10支持onreadystatechange事件,其它浏览器不支持。
4、onerror事件
网络状况不好或图片不存在都可能触发onerror事件。
loading...
document.getElementsByTagName("img")[0].onload=function(){ document.getElementsByTagName("p")[0].innerHTML='加载完成!'; } document.getElementsByTagName("img")[0].onerror=function(){ document.getElementsByTagName("img")[0].src="http://dh.wk163.comhttp://dh.wk163.comhttp://dh.wk163.comimages/background.png"; }
触发onerror事件后,会为img指定一个新的图片。
问题:
新图片存在则显示新图片,但若新图片也不存在,则将继续触发onerror,导致页面循环跳动。
解决:
通过将onerror置为null,来防止页面循环跳动。
loading...
document.getElementsByTagName("img")[0].onload=function(){ document.getElementsByTagName("p")[0].innerHTML='加载完成!'; } document.getElementsByTagName("img")[0].onerror=function(){ document.getElementsByTagName("img")[0].src="images/backgeound.png"; document.getElementsByTagName("img")[0].onerror=null; document.getElementsByTagName("p")[0].innerHTML='加载失败!'; }
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript图片操作技巧大全》、《JavaScript运动效果与技巧汇总》、《JavaScript切换特效与技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。