Ce navigateur n’est plus pris en charge.

Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.

Télécharger Microsoft Edge Plus d’informations sur Internet Explorer et Microsoft Edge

Avertissement

L’application de bureau Internet Explorer 11 mise hors service et non prise en charge a été désactivée définitivement via une mise à jour de Microsoft Edge sur certaines versions de Windows 10. Pour plus d’informations, consultez FAQ sur la mise hors service des applications de bureau Internet Explorer 11 .

Cet article fournit un exemple pour appeler la propriété Scroll height afin de définir la hauteur de la page web.

Version d’origine du produit : Internet Explorer 9 et versions ultérieures
Numéro de la base de connaissances d’origine : 2684777

Symptômes

La scrollHeight propriété d’un iframe peut retourner une valeur inférieure à celle attendue. L’utilisation de cette valeur pour redimensionner la hauteur de l’iframe peut entraîner l’affichage de la barre de défilement verticale, ce qui augmente la hauteur du contenu.

Cause

Microsoft a confirmé qu’il existe un problème avec le calcul de la scrollHeight propriété.

Solution de contournement

Ajoutez un remplissage supplémentaire à la hauteur. Cela permet de résoudre la plupart des situations si la barre de défilement qui apparaît est indésirable. Vous pouvez également basculer vers le mode document standard d’Internet Explorer 9, car le problème ne se produit pas dans ce mode.

Plus d’informations

On ne connaît pas exactement toutes les conditions requises pour que ce problème apparaisse. Dans certaines situations, le problème n’apparaît qu’à d’autres niveaux de zoom en plus de 100 %.

Voici un exemple où le scrollHeight n’est pas assez grand pour être utilisé comme pixelHeight , même si le remplissage , la marge et la bordure sont tous 0px dans l’élément et body de html l’iframe. Lorsque l’iframe est plus grand que le contenu, il donne un scrollHeight de 491 , même si 491 n’est pas suffisant pour empêcher l’affichage des barres de défilement. Cet exemple particulier se reproduit uniquement en mode standard d’Internet Explorer 8. D’autres exemples peuvent être reproduits pour le mode standard d’Internet Explorer 9 et versions ultérieures et/ou le mode Quirks.

  • test.htm
  • <!doctype>
            <meta http-equiv="X-UA-Compatible" content="IE=8"/>
        </head>
            <button onclick="Test()">Set iframe's pixelHeight to scrollHeight</button><br/>
            <div id="myDiv" style="position: absolute; left: 200px; border: 2px solid black; height: 50px; width: 300px"></div>
            <iframe style="width: 182px; height: 491px; border: 1px solid green;" id=myiframe src="iframe.htm" frameBorder=0></iframe>
            <script language="javascript">
                function Test()
                var obj = document.getElementById("myiframe");
                obj.style.pixelHeight = obj.contentWindow.document.body.scrollHeight;
                var result = obj.contentWindow.document.body.scrollHeight;
                document.getElementById("myDiv").innerHTML = "iframe scrollHeight = " + result + "<br/>";
            </script>
        </body>
    </html>
    
  • iframe.htm
  • <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
            <style>
                body {
                font-family: verdana, arial, helvetica, sans-serif;
                font-size: 70%;
                padding: 0px; margin: 0px; border: 0px;
                html { padding: 0px; margin: 0px; border: 0px; }
            </style>
        </head>
                <table>
                    <tbody>
                                <p>1st row in p tags</p>
                            <td>2nd row</td>
                                3rd row of text
                                    Text below the hr that wraps to next line<br>
                                    This line of text is lone enough to go to four lines and at seventy five percent zoom will cause the problem<br>
                                    abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf abcdedf
                    </tbody>
                </table>
        </body>
    </html>
    

    Si la hauteur de l’iframe est définie en fonction de cette propriété dans le gestionnaire d’événements onresize, vous devez veiller à éviter un flux infini d’appels onresize, car vous pouvez basculer la hauteur de l’iframe entre une hauteur sans barre de défilement et une hauteur avec des barres de défilement. L’ajout du remplissage ou l’utilisation d’indicateurs doit empêcher la récursivité infinie.