Резонирующий запрос: фреймы в IE, которые показывают прогресс загрузки?
Что меня беспокоит в IE, так это то, что когда он загружает страницу с помощью iframe, он будет ждать окончания загрузки iframe, прежде чем отобразит страницу. Firefox, в отличие от этого, будет отображать все остальные элементы страницы во время загрузки iframe, что очень удобно, если загрузка iframe занимает много времени, потому что это дает пользователю некоторую обратную связь о том, что страница прогрессирует. Он также позволяет вам делать такие вещи, как отображение сообщения "загрузка iframe" во время загрузки кадра и его замена при загрузке iframe.
Итак, мне интересно, если кто-нибудь нашел обходной путь для этого. В идеале я хотел бы видеть кросс-браузерное решение, которое отображает панель прогесов при загрузке фрейма на страницу. Если не считать этого, я бы использовал метод реализации iframe, который заставляет IE сначала визуализировать страницу, а затем загружать iframe.
Я видел несколько интересных индикаторов выполнения jquery, таких как: http://plugins.jquery.com/project/jQueryProgressBar
Но...(и поправьте меня, если я здесь не прав, потому что мое понимание шатко)... мне кажется, что jquery-бары отображаются только после загрузки DOM. В IE содержимое iframe не отображается до тех пор, пока не загружена DOM, поэтому показ индикатора выполнения в этой точке не имеет значения.
Я также попытался установить iframe src в loading.htm, а затем при загрузке переключить src на нужный мне контент. К сожалению, IE по-прежнему не будет отображать страницу, пока не появится последняя страница с контентом (мне это кажется странным).
Помоги мне stackru, ты моя единственная надежда.
2 ответа
Что если вы загрузите страницу с XmlHttpRequest, а затем замените содержимое документа как / при загрузке?
<!-- jQuery example: -->
<div id='content'>Loading...</div>
<script type='text/javascript'>
$("#content").load(url);
</script>
Вы можете установить местоположение вашего iframe, используя JavaScript после загрузки родительского окна.
<body onload="document.getElementById('myIframe').location='someurl';">
<iframe id="myIframe">
</body>
Был бы самый элементарный способ сделать это.