A veces cuando estamos programando con JavaScript y probamos una página en Internet Explorer nos encontramos con el error «Object doesn’t support this property or method«. Sin embargo, en otro navegador como Chrome o Firefox funciona correctamente sin errores.
El problema viene dado porque existe alguna variable en javascript que tiene el mismo nombre que el identificador de una etiqueta html. Por ejemplo:
foo = bar(); |
y
<div id='foo'> |
Y parece que Internet Explorer guarda en el mismo lugar los identificadores de las etiquetas junto a las variables globales y nombres de funciones de JavaScript.
Hay dos soluciones para resolver este error:
- Renombrar una de las 2 para que no se repitan.
- No utilizar variables globales en javascript (casi nunca es bueno utilizar variables globales) y declararlas como variables locales. En el ejemplo:
var foo = bar();
Interesante 😉
Pero las variables que se llaman foo me inspiran poca confianza, donde se ponga un var1, var2, etc.
O sea si tengo dentro del script lo siguiente:
var agregadosHS = document.getElementById(«agregados»);
for(var i = 0; i < agregadosHS.options.length ; i++){
agregadosHS[i].selected = true;
}
Y en el HTML lo siguiente:
Estaria correcto no es asi?
Me da error solo en IExplorer (firefox y Chrome funciona bien)
Agregados no esta definido