Cita: Me estais diciendo que si yo me creo un formulario y le pongo de id "formulario" habrá conflicto con una variable que nadie ha creado y que se llama formulario???
tecnicamente es correcto. habra conflicto porque es algo que solo hace iexplorer. el elemento en particular no importa. sucede que el estandar no indica que los IDs deben ser variables en javascript. eso fue algo que inicialmente se invento microsoft. lo curioso es que los navegadores actuales (firefox, safari 4/win32, chrome2, netscape9, flock, opera10) tambien crean dichas variables, quizas lo hicieron asi para adaptarse a los programadores que tienen esa costumbre. si por ejemplo vez la consola de errores en navegadores basados en gecko (firefox, netscape, flock) veras que te indica el siguiente aviso.
Cita: Warning: Element referenced by ID/NAME in the global scope. Use W3C standard document.getElementById() instead.
puedes intentar el siguiente codigo en diferentes navegadores, y de paso verifica la consola de errores en los navegadores, no todos te marcaran el aviso.
Código:
<div id="elementodiv"></div>
<script>
alert(elementodiv);
</script>
el problema se puede hacer mayor si los fabricantes de navegadores deciden no soportar dicha tecnica.
edit @ 3:28 DST -5 GMT,
me olvide añadir, el problema se hace mas evidente cuando el documento se analiza con algun DOCTYPE. mira por ejemplo que sucede en firefox cuando cargas el siguiente documento, pero sorprendentemente en otros navegadores si funciona, incluyendo flock y netscape.
Código:
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Test Development</title>
<script type='text/javascript'>
onload = function(){
alert(who)
}
</script>
<style type='text/css'>
</style>
</head>
<body>
<div id="who"></div>
</body></html>
el alerta no se muestra y la consola de error solo dice que la variable
who no esta definida. o sea, esta vez no te avisa que la forma estandar es con
getElementById. por eso nunca es aconsejable utilizar los IDs como variables sin definir.