In Chrome ändert sich die Größe der Seite nach dem Laden von Ajax nicht

8

Ich habe fieberhaft versucht, mich durch die letzte Etappe einer Website, die ich gerade baue, zu bewegen, und mir geht es nur noch um eine merkwürdige Eigenart mit Chrome. FF und IE scheinen gut zu funktionieren.

Ich benutze jQuery, um HTML Stubs zu laden und in diesem Fall eine Menge Inhalt von einem externen Blog, aber wenn ich von den wirklich langen Seiten zu den wirklich kurzen umschalte, bekomme ich ungefähr eine Meile unbenutzter Seite, die noch an die Ende des Dokuments.

Hier ist der Inhalt der Seite, auf der die Stubs geladen werden:

%Vor%

Alle meine Ladevorgänge werden mit jQuery load() ausgeführt, und ich habe eine Iteration der Site ausgeführt, auf der dieses Problem nicht aufgetreten ist. Ich bin zu einem 100% breiterem Stil übergegangen und dieses Problem tauchte dabei auf.

Meine Frage ist: Gibt es eine Möglichkeit, die Seite zu zwingen, ihre Größe erneut zu überprüfen, wenn sie zu einem anderen / kürzeren Inhalt wechselt?

    
ian hoar 08.06.2011, 09:06
quelle

7 Antworten

3

Ich denke Ich habe eine Lösung gefunden. (Zumindest habe ich es in ein paar Minuten nicht gesehen). Im .ajax Callback, nachdem ich den Inhalt mit $('div').html(data); eingestellt habe, verändere ich das gesamte Fenster mit $(window).resize();

    
Paul Tomblin 03.05.2013 14:41
quelle
1

Genau das gleiche Problem, auf das ich gestoßen bin, und die Antwort, auf die ich gekommen bin, ist nein.

Ich habe es nur geschafft, das zu beheben, indem ich die Höhe des neuen div mit dem neuen Inhalt nach AJAX lade und die korrekte Höhe mit jQuery festlege.

Es wäre wirklich gut, wenn jemand eine Möglichkeit finden würde, eine automatische Größenanpassung zu erzwingen, aber diese Lösung funktionierte perfekt, unabhängig von der Menge des Inhalts.

    
Jose Faeti 24.06.2011 23:31
quelle
1

Ich konnte es nur mit der CSS beheben. das Problem war, dass ich mein Seitenumhüllungselement absolut positioniert hatte, so dass es effektiv außerhalb des Körperelements strömungsmäßig saß. Ich habe die Position entfernt: absolut; oben: 0; links: 0; und setze einfach einen Rahmen: 0; und Auffüllen: 0; auf dem Körperelement.

    
ian hoar 25.06.2011 20:39
quelle
0

Es sollte ein reines CSS-Problem sein, ich habe jQuery nicht selbst für AJAX benutzt, aber wenn der Inhalt aufgerufen wird, benutzt du das?

%Vor%

oder verwenden Sie jQuery

%Vor%

Wenn Sie jQuery verwenden, sollten Sie zuerst das div aufräumen:

%Vor%

Und wenn das nicht hilft, können Sie eine feste Höhe verwenden und eine Überlauf-CSS-Eigenschaft verwenden

%Vor%

Natürlich ist eine feste Höhe nicht immer die beste Lösung, aber es könnte Ihnen helfen.

    
victorhqc 06.07.2011 15:43
quelle
0

Wenn es hart auf hart kommt, können Sie die Höhe nach dem Laden immer mit etwas Javascript erzwingen.

Ich versuche so weit wie möglich von position:absolute wegzubleiben.

    
Zeleres 08.11.2011 16:29
quelle
0

Sie können CSS zum Lösen verwenden:

%Vor%     
Sam 04.04.2012 13:18
quelle
-2

asyncBoolean

Standard: true

Standardmäßig werden alle Anforderungen asynchron gesendet (d. h. standardmäßig ist dies auf "true" gesetzt). Wenn Sie synchrone Anforderungen benötigen, setzen Sie diese Option auf false. Domänenübergreifende Anfragen und dataType: "jsonp" -Anfragen unterstützen keinen synchronen Vorgang. Beachten Sie, dass synchrone Anfragen den Browser vorübergehend sperren können, indem Sie alle Aktionen deaktivieren, während die Anfrage aktiv ist. "

user1322163 11.04.2012 14:35
quelle