2012-05-27 46 views
6

Cuando uso .click() en una etiqueta <a>, el evento solo funciona cuando hago clic en el elemento. De lo contrario, si el usuario hace clic con el botón derecho> Abrir en una nueva ventana o Abrir en una pestaña nueva, no activa el evento click()..click() evento cuando 'Abrir en pestaña/ventana nueva'

Entonces, mi pregunta es ... ¿cómo desencadenar el evento click() cuando el usuario hace clic derecho> abrir en una nueva pestaña/ventana?

Aquí está el código HTML:

<a href="url">Click Me</a> 

Aquí es el Js:

$("a").click(function(){ 
    alert('You clicked me!'); 
}); 
+0

ummm .. eso es solo un clic derecho, no 'abrir en una nueva ventana/pestaña'. –

+1

No creo que sea posible. La única forma que veo es capturar el botón derecho del mouse y disparar el evento 'click' manualmente. – VisioN

+0

No creo que sea posible. Creo que uno de los motivos es que no desea que el sitio web pueda seguir el enlace externo que está visitando. – gigadot

Respuesta

2

Puede probar este código, pero recuerda que el cambio de la interfaz de usuario no es una buena IDEA:

var addEvent = (document.addEventListener) ? 
    function(target,event,fn){ 
     if(target) return target.addEventListener(event,fn,false); 
    }: 
    function(target,event,fn){ 
     if(target) return target.attachEvent(('on' + event),fn); 
    }, 
allLinks = document.links || document.getElementsByTagName('a'); 
for(var i=0;i<allLinks.length;i++) 
    addEvent(allLinks[i],'mouseup',function(e){ 
     var e = e || event; 
     if(e.which===3){ 
      alert('Open in new tab/window'); 
      e.preventDefault(); 
      return false; 
     } 
    }); 
+0

Parece que considera que todos los clics correctos son un evento "abrir en una nueva pestaña". – dlsso

Cuestiones relacionadas