Nachdem ich heute für eine Anwendung die vertikale Position innerhalb einer Seite mittels JS auslesen mußte und erhebliche Probleme mit dem MSIE 6 hatte, möchte ich hier nur kurz die Lösung zeigen. Vielleicht erspart sich jemand eine Menge Ärger.
Mir hat das etwas eigenwillige Verhalten dieses Browsers jedenfalls einiges an unnötiger Zeit geraubt.
Im MSIE 6 funktioniert der Befehl "document.body.scrollTop" nur solange kein "DOCTYPE" im HTML eingesetzt wird. Sobald jedoch eine "DOCTYPE" Definition erfolgt wandelt der MSIE 6 einige Eigenschaften von "document.body" in "document.documentElement" um.
Für Testzwecke habe ich folgendes Script programmiert:
( zum Testen DOCTYPE auch mal aus der Datei löschen )
----->> begin
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Show Top Offset</title>
</head>
<body>
<script type="text/javascript">
<!--
function ShowTopOffset() {
var TopOffset = "";
if (document.documentElement && document.documentElement.scrollTop) {
TopOffset = "MSIE 6 : " + document.documentElement.scrollTop;
} else if (document.body) {
TopOffset = "MSIE 4.x - 5.5, Mozilla, Opera : "+ document.body.scrollTop;
} else if (document.layers) {
TopOffset = "Netscape 4.x : " + window.pageYOffset;
}
alert(TopOffset);
}
// Build Quick HTMLbody
for(var a=1; a<=15; a++) {
for(var i=1; i<=5; i++) {
document.write("Eine TestZeile<br>");
}
document.write("<a href='javascript:ShowTopOffset();'>Return PageOffset</a><br><br>");
}
//-->
</script>
</body>
</html>