大家好,又见面了,我是你们的朋友全栈君。
一 今天用IE测试发现一个很奇葩的问题:代码没有什么问题,但是在浏览器中会自动弹出一个错误
如:
二 错误原因分析
2.1 重定义了系统的触发事件名称作为自定义函数名如: onclick / onsubmit… 都是系统保留的事件名称,不允许作为重定义函数名称。
2.2 出现死循环,都提示:Stack overflow at line: 0 , 如:在图片对象定义了onerror 事件的循环处理
<img src="http://images.cnblogs.com/a.gif" οnerrοr="this.src='/image/block.gif'" />
这里并不是说 /images/a.gif 不存在, 可能是由于网络原因造成,这时会执行 onerror 事件, 调用 /images/block.gif 去做当前图片的路径,
但如果当前 /image/block.gif 这个图片文件不存在, 再或者由于网络原因,’/image/block.gif’ 下载又出现错误时, 就出现了死循环。
所以在处理 onerror 事件时,要考虑是否是出现这样的问题。 ” Stack overflow at line: 0 “ 该错误不是一直出现,是有时会出现, 是
网络不正常导致死循环引起的, 查了好半天, 最后才找到这个原因
三 解决方法
3.1 去掉 onerror 代码;或者更改 onerror 代码为其它;或者确保 onerror 中的图片足够小,并且存在。
如:
<img src='丢失的图片地址' οnerrοr='javascript:this.alt='图片不存在或可能丢失!'/>
3.2
<script type="text/javascript">function nofind(){ var img=event.srcElement; img.src="http://www.cnblogs.com/sys/common/image/fileoperation/icon/default.gif"; img.οnerrοr=null; 控制不要一直跳动}</script><td align="center"> <img src="http://www.cnblogs.com/sys/common/image/fileoperation/icon/${file.suffix }.gif" οnerrοr="nofind();" />${file.name }</td>
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159636.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...