Heim > Web-Frontend > js-Tutorial > Wie kann ich die Höhe eines iFrames dynamisch ändern, um seinen Inhalt in allen Browsern anzupassen?

Wie kann ich die Höhe eines iFrames dynamisch ändern, um seinen Inhalt in allen Browsern anzupassen?

Mary-Kate Olsen
Freigeben: 2024-11-29 18:40:10
Original
672 Leute haben es durchsucht

How Can I Dynamically Resize an iFrame's Height to Fit its Content Across Browsers?

Dynamische Größenanpassung der iFrame-Höhe an den Inhalt

Beim Einbetten einer ASPX-Seite in einen iFrame passt die Höhe des iFrames möglicherweise nicht ausreichend zum Inhalt, was zu unerwünschten Bildlaufleisten führt. Um dieses Problem zu beheben, untersuchen wir eine browserübergreifende Lösung.

Verstehen der browserübergreifenden Herausforderung

Der bereitgestellte jQuery-Ansatz passt die Höhe des iFrames in Chrome erfolgreich an, stößt jedoch auf ein Problem in Firefox. Diese Diskrepanz entsteht durch Unterschiede in der Art und Weise, wie verschiedene Browser Cross-Site-Scripting (XSS)-Einschränkungen handhaben.

Die optimale Lösung

Um die Höhe des iFrame-Inhalts zu bestimmen, nutzen wir contentWindow.document. body.scrollHeight. Sobald der iFrame geladen ist, ändern wir seine Größe dynamisch mit dem folgenden JavaScript:

function iframeLoaded() {
    var iFrameID = document.getElementById('idIframe');
    if(iFrameID) {
          iFrameID.height = "";
          iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + "px";
    }   
}
Nach dem Login kopieren

Implementierung

Integieren Sie dieses JavaScript in die Seite, auf der Sie den iFrame eingebettet haben, und verknüpfen Sie den Event-Handler damit das onLoad-Attribut des iFrame-Tags:

<iframe>
Nach dem Login kopieren

Erweiterter Anwendungsfall

In In Szenarien, in denen Inhaltsaktualisierungen innerhalb des iFrames ein manuelles Auslösen des Resizers erfordern, können Sie iframeLoaded() aus den Inhaltsskripten des iFrames aufrufen:

parent.iframeLoaded();
Nach dem Login kopieren

Diese umfassende Lösung bietet browserübergreifende Kompatibilität für die dynamische Größenänderung der iFrame-Höhe basierend auf seinen Inhalt, wodurch unerwünschte Bildlaufleisten entfernt werden.

Das obige ist der detaillierte Inhalt vonWie kann ich die Höhe eines iFrames dynamisch ändern, um seinen Inhalt in allen Browsern anzupassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage