Als ich gestern einen Spezialeffekt für eine Webseite schrieb, bekam ich immer eine Fehlermeldung. Den Grund kannte ich bis heute nicht anhand eines Beispiels.
Ich dachte immer, dass die Verwendung von document.onLoad zum Angeben einer Funktion dasselbe ist wie das Hinzufügen von onLoad zum Body-Tag. Anhand des heutigen Beispiels habe ich jedoch festgestellt, dass document.onLoad nicht ausgelöst wird, wenn die Seite geladen wird.
Der Beispielcode lautet wie folgt: (Testumgebung Win2003 + IE7)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<Kopf>
4<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
5<title>Unbenanntes Dokument</title>
6<script language="JavaScript">
7Funktion mytest(){
8 Alert(document.getElementById("my2"));
9}
10document.onLoad = mytest();
11</script>
12</head>
13
14<Körper>
15<p id="my2">Inhalt testen</p>
16</body>
17</html>
Beim Öffnen der HTM-Datei im Beispiel wird ein Eingabeaufforderungsdialogfeld angezeigt, wenn die Seite nicht vollständig angezeigt wird, d. h. der Bildschirm weiß ist. Das bedeutet, dass mytest aufgerufen wird, wenn die Seite nicht vollständig ist.
Kommentieren Sie den Satz document.onLoad aus und ändern Sie dann das Body-Tag in
<body onLoad="mytest()">
Öffnen Sie die Seite erneut. Mytest wird erst aufgerufen, nachdem die Seite geladen wurde. Ich weiß nicht warum, haha.