JavaScript-关于在IE下JavaScript的Stack overflow at line错误可能的原因

时间:2023-01-25 19:12:50

1.注册表混乱使基于IE内核的浏览器无法正常显示图片尤其是png格式, 修改一下注册表(网上搜)

2.重定义了系统的触发事件名称作为自定义函数名如: onclick / onsubmit…  都是系统保留的事件名称, 不允许作为重定义函数名称

3.出现死循环, 都提示: Stack overflow at line: 0, 如:在图片对象定义了onerror 事件的循环处理, 比如:

  <img src=”http://images.cnblogs.com/a.gif” onerror=”this.src=’/image/block.gif’” />

  这里并不是说/images/a.gif不存在, 可能是由于网络原因造成, 这时会执行onerror事件, 调用/images/block.gif去做当前图片的路径, 但如果当前/image/block.gif这个图片文件不存在, 再或者由于网络原因,  '/image/block.gif' 下载又出现错误时, 就出现了死循环

上面的例子一般写成下面这种形式比较保险:

  <img src="http://images.cnblogs.com/a.gif" onerror="this.error = null;this.src='/image/block.gif'" />

所以在处理onerror事件时, 要考虑是否是出现这样的问题

"Stack overflow at line: 0"该错误不是一直出现, 是有时会出现, 是网络不正常导致死循环引起的, 查了好半天, 最后才找到这个原因, 做下记号吧, 给有需要的人

参考自:http://www.cnblogs.com/jenry/archive/2011/05/23/2054385.html