onload-Problem mit IE 6
Michael
- browser
0 D.R.
Hallo miteinander,
eigentlich habe ich die Zeile
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
in meine html-Dateien oben eingefügt, um einen Standard unter den Browsern zu erreichen und damit Probleme zu beseitigen. Mit dem IE handelt man sich jedoch ein Problem nach dem Anderen ein. Nun beim <body onload="JavaScript-Funktion()">
Während man in JS mit
document.body.offsetWidth;
nach einfügen der oberen Standardisierungszeile noch die innere Fensterbreite bekommt, bekommt man mit
document.body.offsetHeight;
nicht mehr die innere Höhe, sondern muss nun
document.documentElement.offsetHeight;
codieren. Eigentlich unlogisch und typisch Microsoft.
Noch nicht genug. Wenn vom Anwender das Fenster vergrößert wird (Ziehen des Rahmens am Teilbild), wird "onload" ausgeführt, jedoch nicht, wenn das Fenster verkleinert wird. Der FF macht es korrekt und löst in beide Richtungen "onload" aus. Wie kann ich den IE dazu bewegen, den "onload" auszuführen, wenn das Fenster verkleinert wird?
Hallo,
nach einfügen der oberen Standardisierungszeile noch die innere Fensterbreite bekommt, bekommt man mit
document.body.offsetHeight;
nicht mehr die innere Höhe, sondern muss nun
document.documentElement.offsetHeight;
codieren. Eigentlich unlogisch und typisch Microsoft.
Nein, das ist völlig logisch. Der Body geht selten über das gesamte Dokument.
Noch nicht genug. Wenn vom Anwender das Fenster vergrößert wird (Ziehen des Rahmens am Teilbild), wird "onload" ausgeführt, jedoch nicht, wenn das Fenster verkleinert wird.
Hier wäre aber eigentlich „onresize“ der richtige Eventhandler.
Der FF macht es korrekt und löst in beide Richtungen "onload" aus.
Also ob das korrekt ist… Normalerweise wird onload nach dem Laden ausgeführt.
Wie kann ich den IE dazu bewegen, den "onload" auszuführen, wenn das Fenster verkleinert wird?
onresize verwenden.
Noch ein kleiner Tipp am Rande:
Eventhandler solltest du in die js-Datei schreiben.
statt body onload="deinJScode"
lieber
window.onload = function(){deinJScode}
mfg. Daniel