Резонирующий запрос: фреймы в IE, которые показывают прогресс загрузки? - PullRequest
1 голос
/ 17 ноября 2008

Что меня беспокоит в 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 значение load.htm, а затем при загрузке переключить src на нужный мне контент. К сожалению, IE по-прежнему не будет отображать страницу до тех пор, пока не появится последняя страница содержимого (мне это кажется странным).

Помоги мне переполниться стеком, ты моя единственная надежда.

Ответы [ 2 ]

2 голосов
/ 17 ноября 2008

Что если вы загрузите страницу с XmlHttpRequest, а затем замените содержимое документа как / при загрузке?

<!-- jQuery example: -->

<div id='content'>Loading...</div>

<script type='text/javascript'>
$("#content").load(url);
</script>
1 голос
/ 17 ноября 2008

Вы можете установить местоположение вашего iframe, используя JavaScript после загрузки родительского окна.

<body onload="document.getElementById('myIframe').location='someurl';">
    <iframe id="myIframe">
</body>

Это был бы самый элементарный способ сделать это.

...