Foros del Web » Programando para Internet » Javascript »

Añadir funciones a eventos dinamicamente

Estas en el tema de Añadir funciones a eventos dinamicamente en el foro de Javascript en Foros del Web. Hola a todos, tengo un problemilla y es que me gustaria que algunos enlaces se abrieran en una ventana nueva, pero validando el xhtml, por ...
  #1 (permalink)  
Antiguo 19/05/2008, 02:33
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Añadir funciones a eventos dinamicamente

Hola a todos, tengo un problemilla y es que me gustaria que algunos enlaces se abrieran en una ventana nueva, pero validando el xhtml, por lo tanto no vale el famoso target="_blank", por lo tanto quiero hacer un window.open:

Código:
function ext()
 {      
    var click='window.open(this.href);return false;';
    var links = document.getElementsByTagName("a"); 

    for (var i=0; i<links.length; i++)
     { 
        if (links[i].getAttribute("rel") && links[i].getAttribute("rel") == "external")
         { 
            links[i].setAttribute('onclick',click);
            //links[i].onclick=click;            
         }  
     } 
 }
window.onload=ext;
Pero el codigo no funciona, a alguien se le ocurre algo?
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #2 (permalink)  
Antiguo 19/05/2008, 07:02
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: Añadir funciones a eventos dinamicamente

Fijate si así te sirve:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>test</title>
<
script>
function 
addEvent(objevTypefnuseCapture){
  if (
obj.addEventListener){
    
obj.addEventListener(evTypefnuseCapture);
    return 
true;
  } else if (
obj.attachEvent){
    var 
obj.attachEvent("on"+evTypefn);
    return 
r;
  } else {
    
alert("nop");
  }
}
function 
ventana(e){
    var 
e=|| window.event;
    var 
el=e.srcElement || e.target;
    var 
url=el.href;
    
window.open(url);
    
el.href='javascript:;';
}
window.onload=function(){
    var 
l=document.getElementsByTagName('a');
    for(var 
i=0;i<l.length;i++){
        if(
l[i].getAttribute('rel')=='external')
            
addEvent(l[i], 'click'ventanafalse);
    }
}
</script>
</head>

<body>
<p><a href="http://www.google.com" rel="external">Google afuera</a></p>
<p><a href="http://yahoo.com">Yahoo dentro</a></p>
<p><a href="http://www.forosdelweb.com" rel="external">Foros del web fuera</a>  </p>
</body>
</html> 
  #3 (permalink)  
Antiguo 19/05/2008, 07:51
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Respuesta: Añadir funciones a eventos dinamicamente

pues si funciona, eskerrik asko ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:33.