Foros del Web » Programando para Internet » Javascript »

Eventos que no me funcionan con IE

Estas en el tema de Eventos que no me funcionan con IE en el foro de Javascript en Foros del Web. Tengo algunos problemas con mis scripts en IE, hay varios eventos que no funcionan... document.onfocus= funcion(); // o addEvent(document, 'focus', funcion); y document.formulario.select.options[0].onclick= funcion(); Funcionan ...
  #1 (permalink)  
Antiguo 01/05/2007, 18:43
 
Fecha de Ingreso: abril-2006
Mensajes: 80
Antigüedad: 18 años
Puntos: 2
Eventos que no me funcionan con IE

Tengo algunos problemas con mis scripts en IE, hay varios eventos que no funcionan...

document.onfocus= funcion(); // o addEvent(document, 'focus', funcion);
y
document.formulario.select.options[0].onclick= funcion();

Funcionan con mozilla pero no con IE


document.onmouseup= funcion();

Esto sí que funciona en IE, pero no como me gustaría. En Mozilla se ejecuta la funcion suelte donde suelte el boton del raton (como si lo suelto en la barra de tareas de windows), pero en IE solo se ejecuta si suelto el raton en el documento.

Me gustaría saber porque razón pasa esto y si hay alguna solución. Gracias, y perdonad si no me explico muy bien, es que estoy cansado
  #2 (permalink)  
Antiguo 01/05/2007, 20:16
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Re: Eventos que no me funcionan con IE

Hola

Bueno, pues si, esos casos se han dado aqui en los foros y pues lo mas acertado seria decir que son productos similares pero diferentes los navegadores existentes, y por eso cada uno necesita su jarabe, es decir, por ej en tu linea

document.onfocus= funcion(); // o addEvent(document, 'focus', funcion);

quitale el comentario y dejalo
document.onfocus= funcion();
addEvent(document, 'focus', funcion);

Asi, la primera funcionaria para iexplorer y la segunda para firefox, que este bien o mal?? bueno, eso aún es una incognita, pero el caso es que asi funciona bien, y lo se porque derkenuke (que nada de raro te responda algo parecido pues el sabe bastante de javascript) posteo hace poco un codigo bastante interesante para hacer interactuar 3 objetos select y tenia el mismo inconveniente que tu comentas, y lo soluciono como te comento, y yo probe y funciona bien en ambos navegadores, habra que ver si en opera y en otros navegadores funciona bien, saludos
__________________
Suerte.
_______________________________
"La vida es el principio de la muerte".
  #3 (permalink)  
Antiguo 02/05/2007, 07:04
 
Fecha de Ingreso: abril-2006
Mensajes: 80
Antigüedad: 18 años
Puntos: 2
Re: Eventos que no me funcionan con IE

Sigue sin funcionar, pero gracias igualmente.

Parece que realmente el objeto document no admite el evento focus, y los options de un select no admiten el evento click, aunque en Mozilla Firefox sí.

Ya he encontrado otras soluciones para mi script...

Ahora tengo otro problema con IE:

Tengo una div con id='menu', cuando ejecuto la siguiente instrucción:
alert(document.getElementById('menu').offsetTop);
Me devuelve un alert(205) en IE y alert(213) en Mozilla, pero si cambio la instrucción por la siguiente:
menu= document.getElementById('menu').offsetTop;
En Mozilla funciona pero en IE me da un error (El objeto no acepta esta propiedad o método).

Esto ya me ha dejado pillado, estoy por ponerles una bomba a los de IE...
Alguien podría solucionarmelo?
  #4 (permalink)  
Antiguo 02/05/2007, 08:29
 
Fecha de Ingreso: abril-2006
Mensajes: 80
Antigüedad: 18 años
Puntos: 2
Re: Eventos que no me funcionan con IE

Bueno, ya he solucionado el problema. Se ve que no puedo darle un valor a menu porque el IE dice que se trata de un objeto . Lo he cambiado por:
menuy= document.getElementById('menu').offsetTop;
y ahora funciona perfectamente

Ahora sólo me queda un problema (si, otro... ). Tengo el siguiente código:

Código PHP:
// Se eliminan los comentarios de la imagen anterior
while (coms.hasChildNodes()){coms.removeChild(coms.lastChild);}
coms.style.display'none';

// Se rellena la tabla con los comentarios de la tabla correspondiente
if (comentarios[this.id].length/2>0){coms.style.display'block';}
for (
i=0;i<comentarios[this.id].length/2;i++)
{
    
// Se crea una fila por cada comentario
    
filadocument.createElement('tr');
    
coms.appendChild(fila);
    
    
// El nick del miembro que ha puesto el comentario
    
td1document.createElement('td');
    
fila.appendChild(td1);
    
td1.appendChild(document.createTextNode(comentarios[this.id][i*2]));
    
    
// El comentario
    
td2document.createElement('td');
    
fila.appendChild(td2);
    
td2.innerHTMLcomentarios[this.id][i*2+1];

De nuevo en Mozilla funciona a la perfección , pero en explorer... me muestra la tabla (coms) pero no el contenido. ¿Alguna solución?

A ver si esta vez alguien me responde, porque ya parece que hablo solo...

Gracias!!
  #5 (permalink)  
Antiguo 02/05/2007, 09:15
 
Fecha de Ingreso: abril-2006
Mensajes: 80
Antigüedad: 18 años
Puntos: 2
Re: Eventos que no me funcionan con IE

Weeeno, ya he encontrado la solución a mi último problema
Se ve que Internet Explorer sí que acepta la función document.createElement(), pero no a la hora de crear filas y columnas en una tabla. Las funciones que hay que utilizar son: insertRow() y insertCell(), que también funcionan en Mozilla:

Código PHP:
// Se eliminan los comentarios de la imagen anterior
while (coms.hasChildNodes()){coms.removeChild(coms.lastChild);}
coms.style.display'none';

// Se rellena la tabla con los comentarios de la tabla correspondiente
if (comentarios[this.id].length/2>0){coms.style.display'block';}
for (
i=0;i<comentarios[this.id].length/2;i++)
{
    
// Se crea una fila por cada comentario
    
filacoms.insertRow(-1);
    
    
// El nick del miembro que ha puesto el comentario
    
td1fila.insertCell(0);
    
td1.appendChild(document.createTextNode(comentarios[this.id][i*2]));
    
    
// El comentario
    
td2fila.insertCell(1);
    
td2.innerHTMLcomentarios[this.id][i*2+1];

Gracias a todos por vuestro interés y vuestra ayuda
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 04:21.