jQuery / JavaScript - 允许CTRL +单击以在新选项卡中打开链接

时间:2014-11-09 01:09:20

标签: javascript jquery

jQuery或JavaScript中是否有一种方法可以让用户按CTRL +点击链接在<a href="">example</a>元素这样的新标签中打开链接?

以下是我所谈论的一个例子: -

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

如果您按住CTRL并单击“some-link”元素,它只是在使用上面的代码时打开当前页面中的页面,有关如何做的任何想法?

3 个答案:

答案 0 :(得分:16)

检查是否按下Ctrl键,然后使用window.open打开链接。但是,链接可能无法在新选项卡中打开。请参阅讨论here

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

请参阅JSFiddle

答案 1 :(得分:2)

如果有人想要在常规点击时禁用页面导航,进行ajax调用或其他东西,但仍想保持默认的ctrl +单击并右键单击并单击鼠标中键(鼠标滚动按钮),即方式:

$('#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 documentation说:

  

event.which也标准化按钮按下(mousedown和   mouseupevents),报告左按钮1,中间2,和3   对。使用event.which而不是event.button。

答案 2 :(得分:0)

在Macintosh键盘上,这是⌘Command键。在Windows键盘上,这是Windows键(⊞Windows)。

有关更多信息,请参见此页面:

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