Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE6/7/8内存不足?_Javascript_Jquery_Internet Explorer_Memory_Iframe - Fatal编程技术网

Javascript IE6/7/8内存不足?

Javascript IE6/7/8内存不足?,javascript,jquery,internet-explorer,memory,iframe,Javascript,Jquery,Internet Explorer,Memory,Iframe,今天我正在对某些功能进行跨浏览器测试,结果遇到了一个相当漂亮的小gem 在IE8中:第99行内存不足 在IE7中:第100行内存不足 在IE6中:第101行的堆栈溢出 据我所知,这些消息开始出现的大部分时间都是由于数组中的元素数大于65535。然而,我不认为这是目前的问题 所讨论的功能是来自iframe的操作,使用jQuery“关闭”当前iframe并“打开”另一个。它实际上发生在封闭/开放的交互上 以前有人见过这样的东西吗 编辑:进一步调查后,它实际上似乎与iFrame无关。仍在挖掘,但任何建

今天我正在对某些功能进行跨浏览器测试,结果遇到了一个相当漂亮的小gem

在IE8中:
第99行内存不足

在IE7中:
第100行内存不足

在IE6中:
第101行的堆栈溢出

据我所知,这些消息开始出现的大部分时间都是由于数组中的元素数大于
65535
。然而,我不认为这是目前的问题

所讨论的功能是来自
iframe
的操作,使用jQuery“关闭”当前
iframe
并“打开”另一个。它实际上发生在封闭/开放的交互上

以前有人见过这样的东西吗


编辑:进一步调查后,它实际上似乎与iFrame无关。仍在挖掘,但任何建议都将不胜感激。

似乎有些东西占用了太多内存,IE没有为此类东西分配太多内存:)其他浏览器会这样做。如果您查看您拥有的行号或使用IE8开发工具调试代码,您应该会得到答案


如果它不是一个递归,那么它可能是一个不断消耗更多内存直到耗尽的循环。

因此,IE和其他所有东西都会像往常一样以不同的方式处理问题

我有一个用来抛出错误的函数,它是递归的。我希望错误显示在主文档中,而不是iframe(不幸的是,iframe在这个站点上被广泛使用)。我的职能要点如下:

myClass.myErrorFunc = function ( msg ) {
    if ( parent !== window ) {
        parent.myClass.myErrorFunc( msg );
    } else {
        // display the error
    }
}
这在Chrome和Firefox中非常有效。它递归一个级别,并在主窗口中显示错误,因为一旦到达顶层,父级就是它自己。然而,显然在IE中,window的父对象从来都不是它自己。因此,无限递归

请继续关注解决方案

编辑:显然,这是使用
的问题==而不是
=。当我切换到
时=,第二次通过(因为这是从
iframe
运行的),
window==parent
计算为true,但
window==parent

不管怎样,我就要它


谢谢大家的帮助。

您还测试了哪些浏览器,添加了多少元素?在Linux Chrome和FF3.6以及Windows FF3.6中都可以正常工作。堆栈溢出通常是由于无限递归造成的。你确定你的代码里没有这些吗?那也是我的第一个想法…但我似乎什么也找不到。我还在挖。