어제 웹페이지 특수효과를 작성할 때 항상 오류가 발생했습니다. 예시를 통해서는 오늘까지 그 이유를 몰랐습니다.
저는 항상 JavaScript의 document.onLoad를 사용하여 함수를 지정하는 것은 Body 태그에 onLoad를 추가하는 것과 같다고 생각했습니다. 그러나 오늘의 예를 통해 페이지가 로드될 때 document.onLoad가 트리거되지 않는다는 것을 알았습니다.
샘플 코드는 다음과 같습니다. (테스트 환경 Win2003 + IE7)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<머리>
4<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
5<title>제목 없는 문서</title>
6<스크립트 언어="자바스크립트">
7함수 mytest(){
8 경고(document.getElementById("my2"));
9}
10document.onLoad = mytest();
11</script>
12</head>
13
14<본문>
15<p id="my2">테스트 콘텐츠</p>
16</body>
17</html>
예제에서 htm 파일을 열면 페이지가 완전히 표시되지 않을 때, 즉 화면이 흰색일 때 프롬프트 대화 상자가 나타납니다. 이는 페이지가 완료되지 않았을 때 mytest가 호출된다는 의미입니다.
document.onLoad 문장을 주석 처리한 후 body 태그를
<body onLoad="mytest()">
로 수정합니다.
페이지를 다시 엽니다. 페이지가 로드된 후에만 Mytest가 호출됩니다. 왜인지는 모르겠어요, 하하.