Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/04/2007, 15:20
Asyolath
 
Fecha de Ingreso: abril-2006
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 2
Re: Alternativa a body onload?

Explicaré mejor mi problema. Tengo un código de javascript metido en el archivo principal.js que sirve principalmente para borrar el texto por defecto de los <textarea> y <input type="text"> cuando el foco se sitúa en ellos, es un código muy sencillo:
Código:
...

function textoDefecto()
{
inputs= document.getElementsByTagName('input');
for(i=0; i<inputs.length; i++)
{
if (inputs[i].type=="text")
{
inputs[i].onfocus= function(){if (this.value==this.title){this.value='';}}
inputs[i].onblur= function(){if (this.value==''){this.value=this.title;}}
}
}

textes= document.getElementsByTagName('textarea');
for(i=0; i<textes.length; i++)
{
textes[i].onfocus= function(){if (this.value==this.title){this.value='';}}
textes[i].onblur= function(){if (this.value==''){this.value=this.title;}}
}
}

window.onload= textoDefecto(); // o addLoadEvent(textoDefecto()); supongo que conocéis la función
El código html:
Código HTML:
<html xmlns="..." xml:lang="en">
<head>
...
<script type="text/javascript" src="principal.js"></script>
</head>
<body>
...
<form>
...
<input type="text" name="titulo" title="Titulo defecto" value="Titulo defecto"/>
...
<textarea name="texto" title="Texto defecto">Texto defecto</textarea>
...
</form>
...
</body>
</html> 
Si hago lo de <body onload="textoDefecto();"> me funciona a la perfección, pero con window.onload no funciona ni tampoco da error. ¿Alguien me puede decir porqué?