"SCRIPT28: из пространства стека" на веб-сайте с использованием IE9
У меня возникла проблема, когда все элементы управления ссылками на моей странице не работают, когда мы развертываем наш веб-сайт на нашем производственном сервере. Вот несколько деталей:
-
У нас есть 3 среды, на которых мы развиваемся: наша локальная машина, которая использует локальный IIS7 для запуска для разработки; тестовая среда, которая является фактическим веб-сервером позади нашего брандмауэра (IIS6); Производство, которое является нашим веб-сервером (IIS6). Веб-сайт отлично работает на локальных машинах и тестовом сервере, но как только мы нажимаем кнопку ссылки на рабочем сервере, она висит.
-
Проблема не существует в Chrome, или FireFox она существует только в IE9. Он не существует, когда вы помещаете IE9 в режим совместимости.
-
Если я использую панель инструментов разработчика IE9 и смотрю скрипты, как только вы нажмете одну из кнопок ссылки, консоль покажет эту ошибку:
SCRIPT28: из пространства стека
, символ линии 340
- Я использую довольно много JQuery, и мне интересно, вызывает ли это проблему: однако я не вижу ошибок JavaScript.
Любые мысли?
Спасибо за любые предложения.
Ответы
Ответ 1
Как говорят люди в комментариях: это означает, что имеет место бесконечная рекурсия. Является ли это простой рекурсией или каким-то коварным путем через код, как змей, кусающий его хвост - неизвестно, кажется, что IE не выдает stacktrace или делает?
Ответ 2
Можете ли вы разместить код/ссылку на код или закрыть эту проблему?
Общие проблемы: у вас может быть проблема закрытия в html, поэтому разные браузеры по-разному интерпретируют иерархию html, или вы можете перебирать через for (x in y), где x содержит обратную ссылку на y.
Ответ 3
Обратитесь к странице msdn для получения информации об этой ошибке. В моем случае ошибка была вызвана:
Ваш код вызвал каскад событий.
Каскад событий вызван запуском события, которое вызывает процедуру события, которая уже находится в стеке....
В принципе, я пытался вызвать событие click (используя jQuery) в элементе управления загрузкой файлов, используя событие click click. Похоже, это вызовет бесконечную рекурсию. Возможно, у вас могут быть проблемы с кнопками.
Ответ 4
Я воспроизвел эту проблему, когда я делаю следующий код:
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);
Я надеюсь, что этот ответ будет полезен для вас.