«SCRIPT28: недостаточно места в стеке» на веб-сайте с использованием IE9 - PullRequest
23 голосов
/ 08 июня 2011

У меня проблема с тем, что все элементы управления кнопками ссылки на моей странице не работают после того, как мы развернем наш веб-сайт на нашем производственном сервере. Вот несколько деталей:

  1. У нас есть 3 среды, в которых мы разрабатываем: наша локальная машина, которая использует локальный IIS7 для запуска для разработки; тестовая среда, которая является реальным веб-сервером за нашим брандмауэром (IIS6); Продукция, которая является нашим живым веб-сервером (IIS6). Веб-сайт работает нормально на локальных машинах и тестовом сервере, но как только мы нажимаем кнопку ссылки на рабочем сервере, он зависает.

  2. Проблема не существует в Chrome или FireFox, она существует только в IE9. Он не существует, когда вы переводите IE9 в режим совместимости.

  3. Если я использую панель инструментов IE9 Developer и наблюдаю за сценариями, как только вы нажмете одну из кнопок ссылки, консоль отобразит эту ошибку:

SCRIPT28: недостаточно места в стеке строка 340 символов 9

  1. Я использую довольно мало JQuery и мне интересно, вызывает ли это проблему: Однако я не вижу ошибок javascript.

Есть мысли? Спасибо за любые предложения.

Ответы [ 4 ]

7 голосов
/ 25 июля 2012

Как говорили люди в комментариях: это означает, что происходит бесконечная рекурсия. Будь то простая рекурсия или какой-то хитрый путь по коду, например, змей, кусающий свой хвост - неизвестно, кажется, что IE не выдает трассировку стека или нет?

1 голос
/ 30 июня 2016

Я воспроизвел эту проблему, когда выполняю следующий код:

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);

Надеюсь, этот ответ будет вам полезен.

1 голос
/ 15 января 2014

Посетите страницу msdn для получения информации об этой ошибке.В моем случае ошибка была вызвана:

Ваш код вызвал каскад событий.
Каскад событий вызван инициированием события, которое вызывает процедуру события, которая уже находится в стеке....

По сути, я пытался вызвать событие click (используя jQuery) для элемента управления загрузкой файлов , используя событие click элемента управления .Похоже, это вызвало бы бесконечную рекурсию.Возможно, у вас похожие проблемы с кнопками.

1 голос
/ 03 января 2014

Можете ли вы опубликовать код / ​​ссылку на код или закрыть эту проблему?

Распространенные проблемы: у вас может быть проблема с закрытием в html, поэтому разные браузеры по-разному интерпретируют иерархию html, или выможет быть цикл через (x в y), где x содержит обратную ссылку на y.

...