Ayer, cuando estaba escribiendo el efecto especial de una página web, siempre recibía un error. No supe el motivo hasta hoy a través de un ejemplo.
Siempre pensé que usar document.onLoad de JavaScript para especificar una función es lo mismo que agregar onLoad a la etiqueta Body. Sin embargo, a través del ejemplo de hoy, descubrí que document.onLoad no se activa cuando se carga la página.
El código de muestra es el siguiente: (Entorno de prueba Win2003 + IE7)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<cabeza>
4<meta http-equiv="Tipo de contenido" content="text/html; charset=gb2312">
5<title>Documento sin título</title>
6<lenguaje de escritura="JavaScript">
7función miprueba(){
8 alerta(document.getElementById("my2"));
9}
10document.onLoad = miprueba();
11</script>
12</head>
13
14<cuerpo>
15<p id="my2">Contenido de prueba</p>
16</cuerpo>
17</html>
Al abrir el archivo htm en el ejemplo, aparece un cuadro de diálogo emergente cuando la página no se muestra completamente, es decir, la pantalla está en blanco. Significa que se llama a mytest cuando la página no está completa.
Comente la oración document.onLoad y luego modifique la etiqueta del cuerpo a
<body onLoad="mytest()">
Vuelva a abrir la página. Mytest se llama solo después de cargar la página. No sé por qué, jaja.