[英]IE6/7/8 Out of Memory?
我今天正在对某些功能进行一些跨浏览器测试,并遇到了一个相当漂亮的小宝石。
在IE8中: Out of memory at line: 99
在IE7中: Out of memory at line: 100
在IE6中: Stack overflow at line: 101
从我能够挖掘出来的,大多数时候这些消息开始出现,这是一个有一个元素数量大于65,535
的数组的问题。 但是,我不相信这就是现在的问题。
有问题的功能是iframe
一个动作“关闭”当前iframe
并使用jQuery“打开”另一个iframe
。 它实际上发生在密切/开放的互动上。
以前有人见过这样的事吗?
编辑 :经过进一步调查,它实际上似乎与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
不...
无论如何,我会接受它......
谢谢你的帮助。
看起来你花了太多的内存和IE没有那么多的内存分配给那种东西:)其他的浏览器。 如果您查看自己拥有的行号或使用IE8开发人员工具调试代码,您应该得到答案。
如果它不是一个递归,它可能是一个循环,在它耗尽之前不断吃掉更多的内存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.