Почему JavaScript работает только после однократного открытия инструментов разработчика в IE? - PullRequest
624 голосов
/ 12 октября 2011

Ошибка IE9 - JavaScript работает только после однократного открытия инструментов разработчика.

Наш сайт предлагает пользователям бесплатную загрузку в формате pdf и имеет простую функцию «введите пароль для загрузки». Однако это не работает вообще в Internet Explorer.

Вы можете сами убедиться в этом примере .

Пропуск загрузки "makeuseof". В любом другом браузере работает нормально. В IE обе ​​кнопки ничего не делают.

Самое любопытное, что я обнаружил, это то, что если вы открываете и закрываете панель инструментов разработчика с помощью F12, все это внезапно начинает работать.

Мы пробовали режим совместимости и ничего подобного.

Как мне заставить это работать в Internet Explorer?

Ответы [ 12 ]

0 голосов
/ 07 января 2018

Я поставил разрешение и исправил проблему. Похоже, что запрос AJAX, который я поместил в свой JavaScript, не обрабатывался, потому что на моей странице была проблема с кэшем. если у вашего сайта или страницы есть проблема с кэшированием, вы не увидите эту проблему в режиме разработчика / F12. мой кэшированный JavaScript AJAX запрашивает, что он может работать не так, как ожидалось, и приводить к прерыванию выполнения, что у F12 не вызывает никаких проблем. Поэтому просто добавили новый параметр, чтобы сделать кеш ложным.

$.ajax({
  cache: false,
});

Похоже, что IE определенно нужно, чтобы это было ложным, чтобы AJAX и javascript-активность работали хорошо.

0 голосов
/ 20 июля 2017

Мы столкнулись с этой проблемой в IE 11 в Windows 7 и Windows 10. Мы обнаружили, в чем именно проблема, включив возможности отладки для IE (IE> Свойства обозревателя> вкладка «Дополнительно»> «Просмотр»> «Снять отметку» Отключить отладку сценариев)(Internet Explorer) ).Эта функция обычно проверяется администратором домена в нашей среде.

Проблема заключалась в том, что мы использовали метод console.debug(...) в нашем коде JavaScript.Предположение, сделанное разработчиком (мной), состояло в том, что я не хотел, чтобы что-то было написано, если клиентская консоль Developer Tools явно не была открыта.В то время как Chrome и Firefox, похоже, согласились с этой стратегией, IE 11 не понравился.Изменив все операторы console.debug(...) на операторы console.log(...), мы смогли продолжить регистрировать дополнительную информацию в клиентской консоли и просматривать ее, когда она была открыта, но в остальном скрывать ее от обычного пользователя.

...