2010-12-22 9 views
0

Ich habe einen Iframe, der Webseiten von verschiedenen Websites hostet. In dem onload-Handler für das iframe der Größe ich es, den Inhalt mit JQueryAnpassung der Größe von iFrame an den Inhalt, wenn die Webseite ein Größenänderungsereignis hat

height = iframe.find ('Körper') passen. Attr ('Scrollheight') + 100

Dies funktioniert für die meisten Websites in Ordnung. Es gibt jedoch eine Website mit einem window.onresize-Ereignis, mit dem die Seite neu geladen wird. So wird die Seite in einer Endlosschleife neu geladen und die Seite neu geladen.

Wie kann ich das Größenänderungs-Ereignis beenden? Ich habe alle folgenden in meinem Onload-Handler versucht, aber keiner scheint zu funktionieren:

$ ('# webpage'). Resize (function() {alert ("resizing"); return false});

iframe.resize (function() {alert ("resizing"); return false});

window.onresize = null

window.onresize = function() {alert ("Ändern der Größe"); falsch zurückgeben};

+0

Welche Art von albernen Website lädt sich auf der Größe neu? : S – thirtydot

+0

Heh @ thirthydot - Ich habe festgestellt, Chrome-Aufrufe Größe ändern, wenn Sie Tabs ändern, ich bin mir ziemlich sicher, dass ich es sogar gefangen Rendern der Seite? – danjah

+1

@thirtydot: eine für Netscape 4 geschrieben, die bei der Größenanpassung des Fensters auf merkwürdige Weise CSS komplett vermasselt hat. Reload-on-resize war eine häufige Problemumgehung, obwohl dies normalerweise nur mit einem Browser-Sniff wie "if (document.layers)" durchgeführt wurde. – bobince

Antwort

0

Wenn es keine verrückte Lösung gibt, weiß ich einfach nicht, der beste Weg, die Endlosschleife zu stoppen, ist wahrscheinlich zu zählen, wie oft der onload Handler für Ihre iframe aufgerufen wurde. Wenn es mehr als 1 war? 2? 3? mal, dann ändere nicht die Größe.

+0

Danke. Ich mochte das nicht sehr, aber Sie haben mich aufgefordert, zumindest zu überprüfen, ob die Höhe anders ist, bevor Sie es ändern! – simon

Verwandte Themen