1. Antwort auf die Hauptfrage
Das Skript $(window).height()
funktioniert gut (zeigt die Höhe des Ansichtsfensters und nicht das Dokument mit Bildlaufhöhe an), ABER es erfordert, dass Sie das Doctype-Tag korrekt in Ihr Dokument einfügen, zum Beispiel diese Doctypes:
Für HTML 5:
<!DOCTYPE html>
Für Übergangs-HTML4:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Wahrscheinlich ist der von einigen Browsern angenommene Standard-Doctype ein solcher, $(window).height()
der die Höhe des Dokuments und nicht die Höhe des Browsers verwendet. Mit der Doctype-Spezifikation ist sie zufriedenstellend gelöst, und ich bin mir ziemlich sicher, dass Sie Peps vermeiden werden, den "Scroll-Overflow in versteckt und dann zurück zu ändern", was leider ein etwas schmutziger Trick ist, besonders wenn Sie es nicht tun. t Dokumentieren Sie es im Code für die zukünftige Verwendung durch den Programmierer.
2. Ein ZUSÄTZLICHER Tipp, beachten Sie Folgendes:
Wenn Sie ein Skript erstellen, können Sie außerdem Tests erfinden, die Programmierern bei der Verwendung Ihrer Bibliotheken helfen. Lassen Sie mich ein paar erfinden:
$ (Dokument) .ready (Funktion () {
if(typeof $=='undefined') {
alert("PROGRAMMER'S Error: you haven't called JQuery library");
} else if (typeof $.ui=='undefined') {
alert("PROGRAMMER'S Error: you haven't installed the UI Jquery library");
}
if(document.doctype==null || screen.height < parseInt($(window).height()) ) {
alert("ERROR, check your doctype, the calculated heights are not what you might expect");
}
});
BEARBEITEN: über Teil 2, "Ein ZUSÄTZLICHER Tipp, Anmerkung beiseite": @Machiel, im gestrigen Kommentar (04.09.2014), war UTTERLY richtig: Der Scheck des $ kann nicht im fertigen Ereignis von Jquery sein, weil Wir gehen, wie er betonte, davon aus, dass $ bereits definiert ist. DANKE FÜR DAS AUSZEICHNEN, und bitte korrigieren Sie den Rest Ihrer Leser, wenn Sie es in Ihren Skripten verwendet haben. Mein Vorschlag ist: Fügen Sie in Ihre Bibliotheken eine "install_script ()" - Funktion ein, die die Bibliothek initialisiert (setzen Sie einen Verweis auf $ in eine solche init-Funktion, einschließlich der Deklaration von ready ()) und zu Beginn einer solchen "install_script ()" - Funktion Überprüfen Sie, ob das $ definiert ist, machen Sie jedoch alles unabhängig von JQuery, damit Ihre Bibliothek "sich selbst diagnostizieren" kann, wenn JQuery noch nicht definiert ist. Ich bevorzuge diese Methode, anstatt die automatische Erstellung einer JQuery zu erzwingen, die sie von einem CDN bringt. Das sind winzige Notizen, um anderen Programmierern zu helfen. Ich denke, dass Leute, die Bibliotheken erstellen, mehr Feedback zu Fehlern potenzieller Programmierer erhalten müssen. Zum Beispiel benötigt Google Apis ein Handbuch, um die Fehlermeldungen zu verstehen. Es ist absurd, externe Dokumentation für einige kleine Fehler zu benötigen, bei denen Sie nicht nach einem Handbuch oder einer Spezifikation suchen müssen. Die Bibliothek muss SELBSTDOKUMENTIERT sein. Ich schreibe Code, der sich sogar um die Fehler kümmert, die ich in sechs Monaten begehen könnte, und es versucht immer noch, ein sauberer und sich nicht wiederholender Code zu sein, der bereits geschrieben wurde, um zukünftige Entwicklerfehler zu verhindern. Ich denke, dass Leute, die Bibliotheken erstellen, mehr Feedback zu Fehlern potenzieller Programmierer erhalten müssen. Zum Beispiel benötigt Google Apis ein Handbuch, um die Fehlermeldungen zu verstehen. Es ist absurd, externe Dokumentation für einige kleine Fehler zu benötigen, bei denen Sie nicht nach einem Handbuch oder einer Spezifikation suchen müssen. Die Bibliothek muss SELBSTDOKUMENTIERT sein. Ich schreibe Code, der sich sogar um die Fehler kümmert, die ich in sechs Monaten begehen könnte, und es versucht immer noch, ein sauberer und sich nicht wiederholender Code zu sein, der bereits geschrieben wurde, um zukünftige Entwicklerfehler zu verhindern. Ich denke, dass Leute, die Bibliotheken erstellen, mehr Feedback zu Fehlern potenzieller Programmierer erhalten müssen. Zum Beispiel benötigt Google Apis ein Handbuch, um die Fehlermeldungen zu verstehen. Es ist absurd, externe Dokumentation für einige kleine Fehler zu benötigen, bei denen Sie nicht nach einem Handbuch oder einer Spezifikation suchen müssen. Die Bibliothek muss SELBSTDOKUMENTIERT sein. Ich schreibe Code, der sich sogar um die Fehler kümmert, die ich in sechs Monaten begehen könnte, und es versucht immer noch, ein sauberer und sich nicht wiederholender Code zu sein, der bereits geschrieben wurde, um zukünftige Entwicklerfehler zu verhindern. Sie müssen nicht nach einem Handbuch oder einer Spezifikation suchen. Die Bibliothek muss SELBSTDOKUMENTIERT sein. Ich schreibe Code, der sich sogar um die Fehler kümmert, die ich in sechs Monaten begehen könnte, und es versucht immer noch, ein sauberer und sich nicht wiederholender Code zu sein, der bereits geschrieben wurde, um zukünftige Entwicklerfehler zu verhindern. Sie müssen nicht nach einem Handbuch oder einer Spezifikation suchen. Die Bibliothek muss SELBSTDOKUMENTIERT sein. Ich schreibe Code, der sich sogar um die Fehler kümmert, die ich in sechs Monaten begehen könnte, und es versucht immer noch, ein sauberer und sich nicht wiederholender Code zu sein, der bereits geschrieben wurde, um zukünftige Entwicklerfehler zu verhindern.