Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/05/2007, 00:56
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 10 meses
Puntos: 1284
Re: Hacer Javascript 4x4 (cualquier navegador)

Hola:

La verdad es que cada vez hay menos diferencias entre navegadores, pero los más frecuentes son entre explorer y el resto...
El caso de Opera es bastante curioso, porque en muchos casos implementa los códigos de explorer y de las estándares.

Hace años se discriminaba consultando la existencia del objeto document.all, y también existe en Opera, pero suele ser suficiente.

Un caso es la asignación dinámica de métodos asociados a eventos que en los navegadores estándares es addEventListener(), y la versión para explorer es attachEvent()...

if (document.all) boton.attachEvent("onclick", metodoOnclick);
else boton.addEventListener("click", metodoOnclick, false);

Como puede verse, la forma de asignar los eventos no permite los parámetros, así que no se puede usar el objeto this, por lo que debe obtenerse el elemento que produjo el evento... otra cosa que debe discriminarse... en explorer es event.srcElement, y en mozilla debe consultarse el atributo target del parámetro "ficticio"...

function metodoOnclick(e) {
function procesar(x) {// x equivaldría al objeto this
// aquí el verdadero código asociado el elemento x
}

if (document.all) procesar(event.srcElement);
else procesar(e.target);
}

Si alguna de estas afirmaciones no es correcta, espero que se proponga una versión mejor.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo