2012-05-27 53 views
6

Khi tôi sử dụng .click() trên thẻ <a>, sự kiện chỉ hoạt động khi tôi nhấp vào phần tử. Nếu không, nếu người dùng thực hiện Nhấp chuột phải> Mở trong cửa sổ mới hoặc Mở trong tab mới, nó sẽ không kích hoạt sự kiện click()..click() sự kiện khi 'Mở trong tab/cửa sổ mới'

Vì vậy, câu hỏi của tôi là ... làm cách nào để kích hoạt sự kiện click() khi người dùng nhấp chuột phải> mở trong tab/cửa sổ mới?

Dưới đây là HTML:

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

Đây là Js:

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

ummm .. thats chỉ một nhấp chuột phải, không phải 'mở trong cửa sổ/tab mới'. –

+1

Tôi không nghĩ điều đó là có thể. Cách duy nhất tôi thấy là bắt chuột phải vào nút và kích hoạt sự kiện 'click' theo cách thủ công. – VisioN

+0

Tôi không nghĩ là có thể. Tôi nghĩ một trong những lý do là bạn không muốn trang web có thể theo dõi liên kết bên ngoài mà bạn đang truy cập. – gigadot

Trả lời

2

Bạn có thể thử mã này, nhưng hãy nhớ rằng việc thay đổi giao diện người dùng không phải là một ideia tốt:

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

Điều này có vẻ như nó xem xét tất cả các nhấp chuột phải là một sự kiện "mở trong tab mới". – dlsso

Các vấn đề liên quan