Hallo zusammen,
ich suche nach einer Möglichkeit, zuverlässig und vor allem browserübegreifend, abzufragen ob ein Fenster vertikale Scrollbars
anzeigt oder nicht. Und wenn welche standardmäßig (wie in manchen Browsern der Fall) angezeigt werden, ob diese auch aktiv sind.
Der Hintergrund:
Ich habe verschiedene Seiten, bei denen ich vorher nicht weiß wie lang sie werden, da der Inhalt teilweise dynamisch erstellt wird. Ist die Seite so lang, dass der User scrollen muss, so soll am unteren Ende der Seite ein Link mit Anker an den Seitenanfang angezeigt werden.
Ich habe zu diesem Thema viel gegoogelt und bin dabei auf folgende Lösung in JavaScript gestoßen, bei der zunächst geprüft wird, welchen Browser der User benutzt und dann die jeweilig zur Verfügung stehenden Funktionen/Attribute verwendet werden, um den Anzeigebereich und die Länge des Dokumentes zu ermitteln.
var nc = !!(document.captureEvents && !document.getElementById);
var nc6 = !!(document.captureEvents && document.documentElement);
var ie = !!document.all;
function scrolltest() {
if(ie) {
breit = document.body.clientWidth;
hoch = document.body.clientHeight;
fbreit = document.body.scrollWidth;
fhoch = document.body.scrollHeight;
}
if (nc || nc6) {
breit = self.innerWidth;
hoch = self.innerHeight;
fbreit = self.document.width;
fhoch = self.document.height;
}
if(hoch < fhoch) {
alert("Scrollbars!");
}
else {
alert("Nö, keine Scrolbars!");
}
}
Ich denke der Ansatz ist für mein Problem der richtige. Jedoch bin ich mir nicht sicher, ob mit oben stehendem Code alle bzw. möglichst viele Browser angedeckt werden. Außerdem verwirren mich die 2 Ausrufezeichen vor der öffnenden Klammer in den ersten 3 Zeilen (doppelte Negation oder was soll das bezwecken???).
Vielleicht kennt jemand eine elegantere Lösung für mein Problem.
Freue mich auf euer Feedback.
Gruß
edgar