1

IEについて私を悩ませていることの1つは、iframeを使用してページをロードするときに、iframeがロードを完了するまで待機してからページをレンダリングすることです。対照的に、Firefoxは、iframeの読み込み中に他のすべてのページ要素をレンダリングします。これは、ページが進行中であるというフィードバックをユーザーに提供するため、iframeの読み込みに時間がかかる場合に非常に便利です。また、フレームが読み込まれている間に「iframe読み込み」メッセージを表示したり、iframeの読み込み時に交換したりすることもできます。

だから、誰かがこれの回避策を見つけたかどうか疑問に思っています。理想的には、iframeがページに読み込まれるときに進行状況バーを表示するクロスブラウザソリューションが必要です。それが足りない場合は、IEに最初にページをレンダリングしてからiframeをロードするように強制するiframeを実装する方法を採用します。

http://plugins.jquery.com/project/jQueryProgressBarのような興味深いjqueryプログレスバーをいくつか見てきました。

しかし...(そして私がここで間違っている場合は私の理解が不安定であるために私を訂正してください)...私にはjqueryバーはDOMがロードされた後にのみレンダリングされるようです。IEでは、DOMが読み込まれるまでiframeコンテンツは表示されないため、その時点でプログレスバーを表示することは重要ではありません。

また、iframe srcをloading.htmに設定してから、srcを必要なコンテンツにonload切り替えしてみました。残念ながら、IEは、最終的なコンテンツページが表示されるまで、ページをレンダリングしません(私には奇妙に思えます)。

私のstackoverflowを助けてください、あなたは私の唯一の希望です。

4

2 に答える 2

2

XmlHttpRequest を使用してページを読み込み、読み込み時にドキュメントのコンテンツを置き換えるとしたらどうでしょうか。

<!-- jQuery example: -->

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

<script type='text/javascript'>
$("#content").load(url);
</script>
于 2008-11-17T20:11:19.753 に答える
1

親ウィンドウがロードされた後、JavaScript を使用して iframe の場所を設定できます。

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

それを行うための最も初歩的な方法になります。

于 2008-11-17T20:23:44.033 に答える