使用IE9的网站上的“SCRIPT28:堆栈空间”

时间:2011-06-08 14:33:18

标签: javascript asp.net internet-explorer response.redirect

我遇到的问题是,一旦我们将网站部署到生产服务器,我页面上的所有链接按钮控件都无法运行。以下是一些细节:

  1. 我们开发了3个环境:我们的本地机器,它使用本地IIS7进行开发;测试环境,它是我们防火墙后面的实际网络服务器(IIS6);生产是我们的实时网络服务器(IIS6)。该网站在本地计算机和测试服务器上运行良好,但一旦我们点击生产服务器上的链接按钮就会挂起。

  2. Chrome或FireFox中不存在此问题,它仅存在于IE9中。将IE9置于兼容模式时,它不存在。

  3. 如果我使用IE9 Developer工具栏并观看脚本,只要单击其中一个链接按钮,控制台就会显示以下错误:

  4. SCRIPT28:堆栈空间不足 ,第340行第9期

    1. 我使用了相当多的JQuery,我想知道这是否会导致问题:但是,我发现没有javascript错误。
    2. 有什么想法? 感谢您的任何建议。

4 个答案:

答案 0 :(得分:7)

正如人们在评论中所说:这意味着无限递归发生。无论是简单的递归还是跨越代码的一些狡猾的路径,比如蛇咬它的尾巴 - 未知,似乎IE没有给出堆栈跟踪,或者它没有?

答案 1 :(得分:1)

您可以发布代码/链接到代码,还是关闭此问题?

常见问题:你可能在html中有一个闭包问题,因此不同的浏览器会以不同的方式解释html层次结构,或者你可能会循环遍历for(x in y),其中x包含对y的反向引用。

答案 2 :(得分:1)

有关此错误的信息,请查看msdn page。在我的情况下,错误是由:

引起的
  

您的代码触发了事件级联        事件级联是由触发调用已在堆栈上的事件过程的事件引起的。 ...

基本上,我试图使用控件的单击事件在文件上传控件上触发单击事件(使用jQuery)。好像它会导致无限递归。也许你的按钮可能遇到类似的问题。

答案 3 :(得分:1)

我在执行以下代码时已经重现了这个问题:

HTML

<span class="search-icon"><input title="search" type="submit" value=""></span>

JS

(function($) {
    $('.search-icon').on('click', function(e) {
        // The click event will call  $('.search-icon').on('click', function(e) { .. } for every time
        // which make an infinte loop in click event as long as there are no stop condition added here.
        $(this).find('input').click();
    });
})(jQuery);

我通过将我的JS代码改为:

解决了这个问题
(function($) {
        $('.search-icon').on('click', function(e) {
            $(this).closest('form').submit();
        });
})(jQuery);

我希望这个答案对你有所帮助。