2012-04-13 7 views
0

Ich habe Schwierigkeiten, die entsprechende Höhe einer linken Spalte und die Positionierung einer Fußzeile relativ zum Inhalt in der mittleren Spalte (von Ajax aufgefüllt) einzustellen.Wie kann ich die Seitenhöhe finden NACH AJAX erweitert den Inhalt über den Bildschirm hinaus?

My Code ist für das Arbeiten rein clientseitige Layouts, aber es erkennt keine der Höhe von Ajax Änderungen (als serverseitige und alle). Also, wie könnte ich die Höhe der Seite bekommen, einschließlich die Änderungen von Ajax gemacht?

Ich denke, ich brauche kann einen JavaScript-Variable aus meiner PHP-Datei zu setzen, die die Ajax Höhe bestimmt ... oder vielleicht wäre es nützlich sein, um festzustellen, ob ein Ajax-Ereignis ausgelöst wurde oder nicht ...

Irgendwelche Ideen, gemeinsame Lösungen?

+4

Machen Sie Ihre AJAX-Anrufe asynchron und setzen Sie die Erfolgsfunktion auf eine Höhe? –

Antwort

2

Fügen Sie JavaScript-Code zu der Seite hinzu, die ausgeführt wird, nachdem der AJAX-Code ausgeführt wurde, um die Höhe zu bestimmen. Verwenden Sie jQuery durchweg großzügig.

+0

Danke für diesen Vorschlag - also habe ich den Ajax aus dem Kopfbereich ausgeführt und das abhängige Javascript berechnet die Seitenhöhe kurz vor dem '' schließenden Tag, und das hat es geschafft. Obwohl ich weiß, dass Ajax ein bisschen mehr Zeit benötigt, um mit dem Server zu kommunizieren (wie @Erik Reppen sagt), ist es immer noch ein wenig verwirrend, wenn es für den Seitenfluss relevant ist. –

0

Ajax ist keine Serverseite. Es ist eine HTTP-Anfrage, die von JavaScript und einem JS-Event-Handler initiiert wurde, der auf das antwortet, was der Server zurücksendet. Du könntest deinen Höhenprüfcode auslösen, nachdem die Ajax-Anfrage initiiert wurde, und es würde dir nichts nützen, weil der JS sofort losbricht und es für diesen Hin- und Rückweg zum Server mindestens einen Bruchteil einer Sekunde dauert. Sie müssen genug darüber wissen, was passiert, um herauszufinden, wo die Funktion ist, die die erfolgreiche Ajax-Anfrage behandelt, und wo in dieser Funktion HTML eingefügt wird, und dann mit Ihrem Höhenprüfungs-/Einstellungscode fortfahren.

0

Sie brauchen kein Javascript, um dies zu tun, kann es leicht mit CSS-Tricks durchgeführt werden. Hier ist ein Link für sie: http://css-tricks.com/snippets/css/sticky-footer/ Howeever wenn Sie wirklich JS brauchen dafür verwenden

document.getElementById("footer").style.top = window.outerHeight + "px"; 

direkt nach dem Inhalt der HTTP-Anforderung laden. Ich schlage den CSS-Ansatz vor.

Verwandte Themen