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

我意识到这不是一个理想的地方就可search性问题,但我有一个页面的JavaScript代码抛出“堆栈溢出行0”错误,当我在Internet Explorer中查看它。

问题很明显不在第0行,而是写在文件列表中的某处。 一切工作正常在Firefox中,所以我没有Firebug和朋友的乐趣,以协助排除故障。

有没有标准的原因呢? 我猜这可能是一个Internet Explorer 7的bug或者是一个相当模糊的东西,而我的Google-fu现在给我带来了一点欢乐。 我可以find很多遇到过这个问题的人,但我似乎无法find他们是如何解决这个问题的。

您可以closuresInternet Explorer中的"Disable Script Debugging"选项,并开始使用Visual Studiodebugging。

我发现这是诊断某些IE特定问题的几种方法之一。

我最近遇到了这个问题,并在我们的代码中写了一篇关于这个问题的post。

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

快速总结是:通过宿主全局对象的recursion被限制在一个堆栈深度13.换句话说,如果你的函数调用正在使用的引用(不一定是函数本身)被定义为某种formswindow.foo =函数,那么通过foorecursion被限制在13的深度。

啊哈!

我有一个代码中的OnError()事件,如果没有find图像源设置为默认图像path。 当然,如果没有find默认的图像path,它会触发error handling程序…

对于有类似问题但不相同的人来说,我猜这个原因很可能是一个未终结的循环,一个触发自己的事件处理程序或类似的东西,会引发JavaScript引擎的旋转。

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

如果你来到这里是因为你在seleniumtesting中遇到了问题:IE不喜欢By.id("xyz") 。 使用By.name,xpath或其他方法。

另外有smartNavigation =“true”导致这个“

我build立了一个默认的项目,发现了以下内容:

问题是smartNavigation和maintainScrollPositionOnPostBack的组合 。 只有当两者均设置为true时才会出现该错误。

在我的情况下,错误是由:

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

任何其他组合工作正常。

有人可以证实这一点吗?

  1. 互联网选项
  2. 工具
  3. 互联网选项
  4. 高级
  5. 导航部分
  6. 单击>禁用脚本debugging

显示关于每个脚本错误的通知

  • 签到
  • 你会微笑!
  • 我是“在第1行”,而是…

    使用jQuery的.clone方法时遇到了这个问题。 我通过从htmlstring中使用jQuery对象来取代这些对象: $($(selector).html())

    我已经在IE8上重现了同样的错误。 其中一个文本框有一些事件处理程序来replace无效的数据。

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

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

    PS也许它会帮助别人

    我不知道该怎么告诉你,但同样的问题发生在jQuery表格sorting和search。 如果表中没有任何内容,例如在searchstring的位置,则也会出现此错误。 即使在Google Analytics(分析)中也经常发生此错误

    在我的情况下,我有两个函数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(); 

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