Variable 'item' en IE ... otro minipunto para los chicos de Redmond!!
Que yo sepa, desde siempre, la declaración de variables en javascript, mediante la palabra reservada 'var' es opcional, no? Es decir, que aunque todos sabemos que es una buena práctica, no es obligatoria, no? Pues a partir de ahora la respuesta va a tener que ser 'a veces si, a veces no'.
Al igual que en el post anterior, hoy hemos vuelto a perder un buen rato por culpa de nuestro querido IE. Ojala pudiese probar la aplicación solo en el Firefox, pero desgraciadamente, no es posible. Y lo peor es que aún no entendemos muy bien por qué no funcionaba nuestro codigo... A ver si alguien lo entiende.
- Codigo de prueba (no funciona en IE, si en Firefox) [Probar]:
item = "test";
alert(item);
- Solucion 1 (funciona en ambos) [Probar]:
var item = "test";
alert(item);
- Solucion 2 (funciona en ambos) [Probar]:
item2 = "test";
alert(item2);
Nada, a partir de ahora habrá que aprender que
la declaración de variables en javascript es opcional, excepto si la variable se llama 'item' que si hay que declararla para el Internet Explorer.Por cierto, después de buscar un rato por Internet, en ningún sitio he visto que aparezca
item en la lista de palabras reservadas de Javascript.
Que Dios nos coja confesados...
Enviado por keko
( sep 12 2006, 10:25:26 AM CEST )
Permalink
ID vs. NAME ... o porque el Internet Explorer hace lo que le da la gana.
Vamos a ver ... para que existen los estandares si no es para cumplirlos? Hoy he perdido toda la mañana buscando un error en un proyecto. El problema era que, al modificar un campo en un formulario HTML, el IE no cambiaba ese campo, sino otro campo de otro formulario. Mi pequeño Firefox, como no, funciona perfectamente.
Despues de eliminar media pantalla, para 'aislar' el problema resulta que, en un mismo formulario, con solo esos dos campos, el problema seguia existiendo. Los campos eran estos:
- input type="hidden" id="accionFormUser" name="accion"
- input type="hidden" id="accion" name="accion"
Y la funcion javascript, es esta:
- document.getElementById('accion').value='borrar';
Por que no funciona? Por que me cambia el valor del primer campo, y no del segundo? Si estoy usando las funciones recomendadas por el W3C para acceder a los nodos HTML de mi pagina!!! Segun la especificacion del DOM, la funcion getElementById devuelve el elemento cuyo ID coincide con el parametro que se le pasa. Entonces, cual es el problema?
Bueno, pues despues de un buen rato he 'descubierto' que el IE (por lo menos, la version 6), se lia cuando existe un campo cuyo NAME coincide con el ID que buscas, y no lo hace bien, pasandose el estandar por el arco del triunfo.
No os lo creeis? Pues
aqui teneis una demo...
Lo mas curioso es que, después de casi tres años trabajando en proyectos con HTML y javascript, nunca me habia pasado, gracias a la costumbre de hacer que el ID de los campos empezase con 'id', lo que hacia que nunca se 'liase' con el name...
Espero que os sirva a alguno de algo, y que no perdais tanto tiempo como yo.
Enviado por keko
( ago 31 2006, 07:50:30 PM CEST )
Permalink
Estamos de vuelta Por culpa de una amiga me ha vuelto a picar el gusanillo en esto de los blogs, asi que he vuelto, con la esperanza (posiblemente infundada) de que esta vez sea capaz de escribir, aunque sea de vez en cuando.
Como se que soy muy dado a empezar cosas y abandonarlas casi en seguida (será porque soy Geminis?), me he planteado un objetivo con este blog. No es gran cosa, como un objetivo para la vida, pero algo es algo, no?
Bueno, pues el objetivo es recopilar todas esas cosillas que me pasan en mi trabajo, para tener un sitio donde buscarlas más adelante, y de paso, enriquecerlas con los comentarios de los que querais aportar algo. Así dicho suena un poco egoista, pero es una manera de auto-convencerme ... funcionara? Casi seguro que no :P
Bueno, pues eso es todo .. si os apetece, ya sabeis donde estoy!
Enviado por keko
( ago 31 2006, 07:30:50 PM CEST )
Permalink