簡體   English   中英

jQuery/JavaScript - 允許 CTRL + 單擊以在新選項卡中打開鏈接

[英]jQuery/JavaScript - Allow CTRL + Click to open link in new tab

在 jQuery 或 JavaScript 中是否有一種方法可以讓用戶按 CTRL + 單擊鏈接以在新選項卡(例如<a href="">example</a>元素)中打開鏈接?

這是我正在談論的一個例子:-

jQuery('#some-link').bind('click', function() {
   window.location = 'http://someurl.com';
});

如果您按住 CTRL 鍵並單擊“some-link”元素,則在使用上述代碼時它只會在當前頁面內打開頁面,有關如何執行此操作的任何想法?

檢查是否按下了Ctrl鍵,然后使用window.open打開鏈接。 不過,該鏈接可能無法在新標簽頁中打開。 請參閱此處的討論。

jQuery('#some-link').bind('click', function(e) {
   e.preventDefault(); 
   if (e.ctrlKey){
     window.open('http://someurl.com','_blank')
   }
});

JSFiddle

如果有人想在常規點擊時禁用頁面導航,進行 ajax 調用或其他操作,但仍想保留默認的 ctrl+click 和 right-click 和 middle-click(mouse scroll button) ,那就是方法:

 $('#link').bind('click', function(e) { if (!e.ctrlKey && e.which != 2 && e.which != 3) { e.preventDefault(); // some logic: $('#box').append('<br>').append($('<a>').html('not paging but doing something! Now try with CTRL')); } });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="box"> <a id="link" href="http://stackoverflow.com/questions/26823884/">this question</a> </div>

JQuery文檔說:

event.which 也標准化按鈕按下(mousedown 和 mouseupevents),左鍵報告 1,中間報告 2,右報告 3。 使用 event.which 而不是 event.button。

在 Macintosh 鍵盤上,這是 ⌘ 命令鍵。 在 Windows 鍵盤上,這是 Windows 鍵 (⊞ Windows)。

有關更多信息,請參閱此頁面:

https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/metaKey

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM