Foros del Web » Programando para Internet » Javascript »

Gestión de eventos, compatibles con diferentes navegadores

Estas en el tema de Gestión de eventos, compatibles con diferentes navegadores en el foro de Javascript en Foros del Web. Hola amigos, estoy implementando una pequeña aplicación, me tope con un problema de compatibilidad de navegadores, el código que muestro en seguida. El problema es ...
  #1 (permalink)  
Antiguo 09/02/2009, 17:36
Avatar de Calichin  
Fecha de Ingreso: febrero-2009
Mensajes: 8
Antigüedad: 15 años, 3 meses
Puntos: 0
Gestión de eventos, compatibles con diferentes navegadores

Hola amigos, estoy implementando una pequeña aplicación, me tope con un problema de compatibilidad de navegadores, el código que muestro en seguida.

El problema es que no me trabaja en IE, probé con este ejemplo:

Código HTML:
<html>
<head>
<title>Calichin Demo 01</title>
<script type="text/javascript">

function addEvent(elm, evType, fn, useCapture){ 
	if(elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}else if(elm.attachEvent){
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}else{
		elm['on' + evType] = fn;
	}
}

function ejemplo(){
	var demo = document.getElementById('demo');

	addEvent(demo, 'mouseover',function(){
		alert(this.tagName);
	}, false);
}

addEvent(window, 'load', ejemplo, false);

</script>
</head>
<body>
<a href="#" id="demo">ejemplo</a>
</body>
</html> 
Se supone que debería mostrarme el nombre del tag que en este caso es A, pero me sale en IE, pero con firefox, opera trabaja.

gracias, espero que alguien me eche una ayuda
Saludos.
  #2 (permalink)  
Antiguo 09/02/2009, 18:20
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Gestión de eventos, compatibles con diferentes navegadores

Un tema del que hablamos varias veces. Modificá el código por este, para que this tenga el mismo significado:
Código javascript:
Ver original
  1. function addEvent(elm, evType, fn, useCapture){
  2.     if(elm.addEventListener){
  3.         elm.addEventListener(evType, fn, useCapture);
  4.        
  5.     }else if(elm.attachEvent){
  6.                 var f=function(){
  7.                        fn.call(elm,window.event);
  8.                 }
  9.         elm.attachEvent('on' + evType, f);
  10.        
  11.     }else{
  12.         elm['on' + evType] = fn;
  13.     }
  14. }
  #3 (permalink)  
Antiguo 09/02/2009, 20:14
Avatar de Calichin  
Fecha de Ingreso: febrero-2009
Mensajes: 8
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Gestión de eventos, compatibles con diferentes navegadores

gracias Panino5001, me va chevere..

graicas, call() me :)
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 18:01.