Foros del Web » Programando para Internet » Javascript »

Ejecutar función, html e innerHTML

Estas en el tema de Ejecutar función, html e innerHTML en el foro de Javascript en Foros del Web. Holas gente, necesito su ayuda Sucede que me han pedido hacer una lista dinámica con autocompletar, y la he resuelto bastante bien, creando una matriz ...
  #1 (permalink)  
Antiguo 19/01/2007, 20:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Ejecutar función, html e innerHTML

Holas gente, necesito su ayuda

Sucede que me han pedido hacer una lista dinámica con autocompletar, y la he resuelto bastante bien, creando una matriz con las opciones disponibles, filtrando como sea necsario, y así cargo las opciones que interesan. Lo cuento rápido porque no es esa la parte del problema.

Sucede que para escribir la lista que voy a mostrar, uso una línea como ésta:

Código:
lista.innerHTML += '<a href="javascript:darValor(' + listado + ', \'' + matriz[i] + '\');">' + matriz[i] + "</a><br />";
El efecto se cumple, todo es correcto, no hay errores en ningún navegador...
Sin embargo, no se ejecuta nada del javascript del enlace en ningún navegador, solo Opera. Así ponga simplemente un 'alert', ni FF, ni IE ni Konqueror lo ejecutan....

¿Hay alguna regla de oro para estos casos? (tipo "nunca pongas javascript con innerHTML"?

1.- Si es necesario dar más datos, los doy. El problema es que es un sistema interno y estoy algo apurado de más...
2.- No tengo en cuenta la accesibilidad porque es un sistema interno que nunca se usará con otra cosa más que internet explorer
3.- No uso el DOM porque el html es bastante sucio, pero si me lo sugieren lo pruebo (hace horas que estoy con esto)


Por favor apiádense de mi....

Edito: haciendo pruebas, veo que tampoco funciona poner simplemente
Código:
lista.innerHTML += '<a href="http://www.google.com">' + matriz[i] + "</a><br />";

saludos.

Última edición por AlvaroG; 19/01/2007 a las 21:33
  #2 (permalink)  
Antiguo 20/01/2007, 00:52
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Ejecutar función, html e innerHTML

Para los que se molestaron en leer este tema, aquí les va la solución:

Sucede que el elemento al que refiere "lista" contiene distintas opciones para un campo de texto.

Este campo de texto tenía en onblur una función que oculta la lista. (en el entendido de que si salgo del campo, ya no necesito las opciones específicas para él)

Mientras que Opera ejecutaba el clic y respondía al enlace, al parecer Firefox e IE ejecutaban primero el onblur (ocultar la lista). Por lo que el clic no se hacía sobre un enlace sino sobre un área de la pantalla donde no había nada.

Claro que todo esto sucede a tal velocidad que me costó 4 horas darme cuenta del problema...

En fin, saludos y espero que esto le sirva a alguien.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:02.