Проблема с белым экраном в IE9 - удаление iframe - PullRequest
7 голосов
/ 29 февраля 2012

Мне интересно, кто-нибудь может дать мне некоторое представление о действительно странной проблеме IE9, с которой я боролся.

Я заканчиваю производство сайта для работы - он хорошо работает в ff/ chrome / ie7 / ie8 без ошибок сценария.

В IE9 последний шаг приложения приводит к тому, что вся вкладка становится белым экраном без ошибок или предупреждений сценария (изменение режима документа на ie8 устранит проблему, ноочевидно, не подходит для производства)

К сожалению, сайт довольно сложный, с кучей ajax и встроенных скриптов, поэтому я не могу легко опубликовать соответствующий код. Я больше пытаюсь понять, какдиагностируйте это.

Я проверил журналы ошибок IE, и они пустые. Инструменты веб-разработчика ничего мне не говорят. Сайт не использует никаких плагинов (Flash / Silverlight, Ect.), только javascript w / jQuery.

Существует PDF-файл, отображаемый в iframe вокруг шага, где он терпит неудачу, но почти идентичный pdf-файл отображается на предыдущем шаге (используя samе метод) без проблем.Код завершается ошибкой при вызове окна пользовательского интерфейса jquery, но я не могу точно определить, какая строка.

Если у кого-то есть подсказка, как попытаться диагностировать это дальше, я бы очень признателен.Я могу продолжать охотиться за ошибкой, но я никогда не видел такого поведения раньше, и просто не уверен, что я ищу.

Ответы [ 3 ]

9 голосов
/ 02 марта 2012

Спасибо за все комментарии по этому вопросу.Извините, я был полностью ошеломлен сразу несколькими проектами, поэтому я не мог публиковать обновления на этапах отладки.

Это заняло целую вечность, но я, наконец, осознал, что все рухнуло, когда я закрыл диалоговое окно, содержащее первый файл PDF.

Одной из моих вспомогательных функций было открытие диалога и автоматическое удаление содержимого при закрытии.Обычно это работает нормально, так как я либо удаляю div, содержащий фрагмент страницы, либо iframe.

В этой ситуации у меня был загружен фрагмент страницы в диалог, который содержал некоторые кнопки и iframe pdf.Я вызвал метод .remove () для родительского элемента, содержащего iframe, а не сам iframe.По некоторым причинам это, кажется, работает хорошо в любом другом браузере - но в IE9 это в значительной степени убивает рендеринг страницы без каких-либо предупреждений или сообщений.

Я сильно подозреваю, что виновником является плагин Adobe, но я не совсем уверен.

Вот исправление -
Html:

<div id="container">
 <iframe src="loremipsum.pdf"></iframe>
</div>

Javascript:

//Ruins my entire week
$("#container").remove(); 

//Works as the pdf is removed directly
$("#container").find("iframe").remove().end().remove(); 
1 голос
/ 10 марта 2017

Я столкнулся с той же проблемой в IE11, пытаясь удалить iframe в div с AngularJS. Если сначала удалить iframe, то возникнет та же проблема, поэтому сначала я перешел на новую страницу iframe (about: blank), а затем удалил работающий div. Надеюсь, это поможет кому-то с подобной проблемой.

Псевдокод ниже:

$ctrl.iframeUrl = 'about:blank'; // change the iframe url here
$timeout(function(){
    $ctrl.removeIframe(); // remove the iframe here
});
0 голосов
/ 29 февраля 2012

Как вариант - посмотрите, что в IE9 DOM viewer после белых экранов.Есть хороший шанс, что большая часть материала есть и просто не рендерится должным образом (или что-то еще визуализируется поверх этого).По крайней мере, зная, теряет ли тонна вещей из DOM или нет, вы получите несколько полезных данных.

...