我今天正在对某些功能进行跨浏览器测试,结果遇到了一个相当漂亮的小 gem 。
在 IE8 中:Out of memory at line: 99
在 IE7 中:Out of memory at line: 100
在 IE6 中:堆栈溢出在第 101 行
据我所知,大多数时候这些消息开始出现,这是一个元素数量大于 65,535
的数组的问题。但是,我不认为这是当前的问题。
有问题的功能是 iframe
中的一个 Action ,“关闭”当前的 iframe
并使用 jQuery “打开”另一个。它实际上发生在关闭/打开交互中。
有没有人见过这样的事情?
编辑:经过进一步调查,它实际上似乎与 iframe 无关。仍在挖掘,但如有任何建议,我们将不胜感激。
最佳答案
所以事实证明这是 IE 的问题,其他一切处理方式都不同......像往常一样。
我有一个用来抛出错误的函数,它是递归设计的。我希望将错误显示在主文档中,而不是 iframe(不幸的是,它在此站点上被广泛使用)。我的函数的要点如下:
myClass.myErrorFunc = function ( msg ) {
if ( parent !== window ) {
parent.myClass.myErrorFunc( msg );
} else {
// display the error
}
}
这在 Chrome 和 Firefox 中效果很好。它递归一级并在主窗口中显示错误,因为一旦到达顶层,父级就是它自己。然而,显然在 IE 中,窗口的父级永远不会是它自己。因此,无限递归。
敬请期待解决方案。
编辑:显然,使用 !==
而不是 !=
是个问题。当我将其第二次切换到 !=
时(因为这是从 iframe
运行的),window == parent
评估为 true ,但 window === parent
不...
不管怎样,我会接受的……
感谢你们的帮助。
关于javascript - IE6/7/8 内存不足?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3910044/