Question

Une des choses qui me dérange dans IE, c'est que quand il charge une page avec un iframe, il attend que le chargement de l'iframe soit terminé avant de rendre la page. Firefox, en revanche, restituera tous les autres éléments de la page pendant le chargement de l'iframe, ce qui est très agréable si le chargement de l'iframe est long, car il donne à l'utilisateur une idée de l'état d'avancement de la page. Cela vous permet également de faire des choses comme afficher un " iframe loading " Messege pendant le chargement du cadre et remplacez-le par la charge de l’iframe.

Donc, je me demande si quelqu'un a trouvé une solution de contournement pour cela. Idéalement, j'aimerais voir une solution multi-navigateurs affichant une barre de progression lorsqu'un iframe se charge sur la page. En dehors de cela, je prendrais une méthode pour implémenter un iframe qui force IE à rendre d'abord la page, puis charge l'iframe.

J'ai vu quelques barres de progression jquery intéressantes comme: http://plugins.jquery.com/project/jQueryProgressBar

Mais ... (et corrigez-moi si je me trompe parce que ma compréhension est fragile) ... il me semble que les barres jQuery ne sont rendues qu'après le chargement du DOM. Dans IE, le contenu de l’iframe n’est affiché qu’après le chargement du DOM. Il est donc inutile d’afficher une barre de progression à cet endroit.

J'ai également essayé de définir l'iframe src sur loading.htm, puis onload, bascule le src sur le contenu souhaité. Malheureusement, IE ne rendra toujours pas la page tant que le contenu final ne sera pas affiché (cela me semble étrange).

Aidez-moi à faire un stackoverflow, vous êtes mon seul espoir.

Était-ce utile?

La solution

Et si vous chargiez la page avec un XmlHttpRequest puis remplaciez le contenu du document au fur et à mesure que / quand il se chargeait?

<!-- jQuery example: -->

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

<script type='text/javascript'>
$("#content").load(url);
</script>

Autres conseils

Vous pouvez définir l'emplacement de votre iframe à l'aide de JavaScript après le chargement de la fenêtre mère.

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

Ce serait la manière la plus rudimentaire de le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top