Ontem, quando eu estava escrevendo um efeito especial para uma página da web, sempre recebia um erro. Não sabia o motivo até hoje através de um exemplo.
Sempre pensei que usar document.onLoad do JavaScript para especificar uma função é o mesmo que adicionar onLoad à tag Body. No entanto, através do exemplo de hoje, descobri que document.onLoad não é acionado quando a página é carregada.
O código de exemplo é o seguinte: (Ambiente de teste Win2003 + IE7)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<cabeça>
4<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
5<title>Documento sem título</title>
6<linguagem script="JavaScript">
7função meuteste(){
8 alerta(document.getElementById("my2"));
9}
10document.onLoad = meuteste();
11</script>
12</cabeça>
13
14<corpo>
15<p id="my2">Testar conteúdo</p>
16</corpo>
17</html>
Ao abrir o arquivo htm do exemplo, uma caixa de diálogo de prompt aparece quando a página não está totalmente exibida, ou seja, a tela fica branca. Isso significa que mytest é chamado quando a página não é concluída.
Comente a frase document.onLoad e modifique a tag body para
<body onLoad="mytest()">
Reabrir a página Mytest é chamado somente depois que a página é carregada. Não sei por que, haha.