IE内存溢出报错Stack overflow at line

该错误只在IE中出现,出现该提示的原因主要有两种:

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

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

<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 “ 该错误不是一直出现,是有时会出现, 是网络不正常导致死循环引起的, 查了好半天, 最后才找到这个原因,做下记号吧, 给有需要的人。

在IE中,有可能是执行两个动作起到的冲突等。


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流