Volviendo a este tema después de un rato:
Descripción: Uso de cadenas de texto como código.
Este error es frecuente al trabajar con setTimeout() o setInterval() o hasta al asignar funciones para manejar ciertos eventos (usando setAttribute(), con el consiguiente problema de que tampoco funciona en todos los navegadores).
Código Incorrecto:
Código Javascript
:
Ver originalsetTimeout("funcion()", 1000);
Código Javascript
:
Ver originalelemento.setAttribute("onclick", "funcion()");
Solución: Asignar directamente la función que corresponde, en el caso de los eventos usar los métodos addEventListener y attachEvent.
Código Javascript
:
Ver originalfunction addEvent(elem, evt, fn, capture) {
if (elem.addEventListener) {
elem.addEventListener(evt, fn, capture);
} else if (elem.attachEvent) {
elem.attachEvent('on' + evt, fn);
}
}
addEvent(elemento, 'click', funcion, false);