昨天在寫一個網頁特效時,總是提示錯誤。一直到今天透過一個範例才知道原因。
我一直認為使用javascript的document.onLoad指定一個函數,跟在Body標籤中加入onLoad是一樣的不過能過今天的範例發現,document.onLoad並不是在頁面載入完成時引發。
範例程式碼如下:(測試環境Win2003 + IE7)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
5<title>無標題文件</title>
6<script language="JavaScript">
7function mytest(){
8 alert(document.getElementById("my2"));
9}
10document.onLoad = mytest();
11</script>
12</head>
13
14<body>
15<p id="my2">測試內容</p>
16</body>
17</html>
開啟範例中的htm檔案時,在頁面沒有完全顯示,即白屏的時侯就彈出提示對話框了。說明mytest在頁面沒有顯示完成時就被呼叫。
註解掉document.onLoad這句,然後修改body標籤為
<body onLoad="mytest()">
重新開啟頁面,此時才是頁面載入完成後才呼叫mytest。不知道什麼原因,呵呵。