怪本身知道的太少,img标签有onerror这个事件,我是才刚知道,恕我愚昧,既然是第一次遇到,并且又是一个本身从没有涉及过得的东西,因此我但愿经过这个随笔来是本身印象深入,此文仅仅只是让本身印象深入的水文,知道这个事件的诸位尽能够绕道而行了,若是你也没有涉及,或者你也未曾知晓这个事件的话,就随我一块儿来了解下这个属性吧.....html
根据w3cschool:浏览器
onerror事件会在文档或图片加载过程当中发生错误时被触发,支持该事件的HTML标签有:img,object,style;实例以下:测试
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>onerror 测试</title> <meta name="description" content="" /> <meta name="author" content="" /> </head> <body> <img onerror="onerror=null;src='http://www.lanrenzhijia.com/images/error.jpg'" src="img/f0.jpg"/> </body> </html>
这段代码中,若是img的src属性中的图片不存在,或者发生错误,将会触发onerror事件,error事件将为src从新加载一张存在的图片,可是若是onerror中的图片也不存在呐?htm
若是error的事件也不存在的话,将再次调用onerror,可是error中的图片也是错的,因此基于微软的一套核心的浏览器IE就会认为这是死循环
而后就会报 stack overflow line: 0的错误。blog
为了解决这个问题,因此,通常在onerror中都会先将onerror事件先清除掉(即onerror = null),再进行复制,这样就不会存在循环调用的问题了事件