代码之家  ›  专栏  ›  技术社区  ›  glenatron

Internet Explorer上的“第0行堆栈溢出”

  •  38
  • glenatron  · 技术社区  · 17 年前

    我意识到这不是一个理想的地方来询问这方面的搜索能力,但我有一个网页的javascript代码抛出“栈溢出在第0行”的错误,当我看它在Internet Explorer。

    问题很明显不是在0行,而是在我要写给文档的东西列表中的某个地方。在火狐中一切正常,所以我没有Firebug和朋友的乐趣来帮助解决问题。

    这有什么标准的原因吗?我猜这可能是一个Internet Explorer 7 bug,或者是一些非常模糊的东西,我的 Google-fu 正在给我带来一点快乐。我可以找到很多以前遇到过这种情况的人,但我似乎找不到他们是如何解决的。

    13 回复  |  直到 17 年前
        1
  •  17
  •   hud    10 年前

    你可以转动 远离的 这个 "Disable Script Debugging" Internet Explorer中的选项,并开始调试 Visual Studio 如果你碰巧有这种感觉的话。

    我发现这是少数几种诊断方法之一 IE 具体问题。

        2
  •  32
  •   Mike Kormendy    14 年前

    我最近遇到了这个问题,并在代码中写了一篇关于导致这个问题的特定案例的文章。

    http://cappuccino.org/discuss/2010/03/01/internet-explorer-global-variables-and-stack-overflows/

    快速总结是:通过主机全局对象的递归被限制为堆栈深度13。换句话说,如果函数调用使用的引用(不一定是函数本身)是用某种形式window.foo=函数定义的,那么通过foo进行递归的深度限制为13。

        3
  •  20
  •   Peter Mortensen Pieter Jan Bonestroo    15 年前

    啊哈!

    我有一个 OnError() 某些代码中的事件,该代码正在将图像源设置为默认图像路径(如果未找到)。当然,如果没有找到默认的图像路径,它将触发错误处理程序…

    对于有类似问题但又不相同的人,我想造成这种情况的原因很可能是一个未终止的循环、一个触发自身的事件处理程序,或者是类似的将JavaScript引擎转为旋转的东西。

        4
  •  7
  •   Peter Mortensen Pieter Jan Bonestroo    15 年前

    我有这个问题,我解决了它。在 <%@ Page 标记名 MaintainScrollPositionOnPostback 移除后,错误消失。 我之前添加了它以防止每次回发后滚动。

        5
  •  3
  •   devsnd    14 年前

    如果你来这里是因为你的硒测试有问题: IE不喜欢 By.id("xyz") . 请改为使用by.name、xpath或其他。

        6
  •  2
  •   CDev    16 年前

    还有smartnavigation=“true”会导致这种情况

        7
  •  2
  •   Tillito    14 年前

    我设置了一个默认项目,发现了以下内容:

    问题是 结合 智能导航和维护的滚动位置。只有当两者都设置为真时,才会发生错误。

    在我的例子中,错误是由以下原因造成的:

    <pages smartNavigation="true" maintainScrollPositionOnPostBack="true" />
    

    任何其他组合都可以。

    有人能证实吗?

        8
  •  1
  •   Janaka senatilleke    15 年前

    1. Internet选项
    2. 工具
    3. Internet选项
    4. 先进的
    5. 导航区
    6. 单击“禁用脚本调试”

      显示每个脚本错误的通知

    7. 登录
    8. 你会微笑的!
        9
  •  1
  •   Muhd Marcin    13 年前

    我是“在第一行”,但是…

    我在使用jquery时遇到这个问题 .clone 方法。我用从HTML字符串生成jquery对象来替换这些对象: $($(selector).html()) .

        10
  •  1
  •   Max    12 年前

    我在IE8上复制了同样的错误。其中一个文本框有一些事件处理程序来替换无效数据。

    $('.numbersonly').on("keyup input propertychange", function () {
        //code
    });
    

    向此文本框输入数据时显示错误消息。我们从上面的代码中删除了事件“propertychange”,现在它可以正常工作了。

    P.S.也许它能帮助某人

        11
  •  0
  •   community wiki 2 revs, 2 users 60% Peter Mortensen    15 年前

    我不知道该怎么说,但jquery表排序和搜索也出现了同样的问题。 如果表中没有剩余内容,例如搜索字符串时,也会出现此错误。即使在谷歌分析中,这种错误也经常发生。

        12
  •  0
  •   pmaruszczyk    13 年前

    在我的例子中,我有两个功能 a() b() . 第一个叫第二个,第二个叫第一个:

    var i = 0;
    function a() { b(); }
    function b() {
      i++; 
      if (i < 30) {
        a();
      }
    }
    
    a();
    

    我用 setTimeout :

    var i = 0;
    function a() { b(); }
    function b() {
      i++; 
      if (i < 30) {
        setTimeout( function() {
          a();
        }, 0);
      }
    }
    
    a();
    
        13
  •  -16
  •   Anish Gupta    14 年前

    这是Java和Flash播放器的问题。安装最新的JAVA和Flash播放器,问题将得到解决。如果没有,那么安装Mozilla Firefox,它将自动安装所需的更新。