jQuery:检测鼠标单击并在新选项卡中打开目标

我目前正在设计一个简单的论坛应用程序。 它主要由jQuery / AJAX提供支持,并在同一页面上加载所有内容; 但是,我知道有时用户想要在浏览论坛时一次打开几个主题以在新标签中查看它们。

我的解决方案是检测何时单击鼠标中键并单击鼠标左键,然后执行不同的操作。 我想在单击鼠标左键时在窗口中加载AJAX目标,否则将其加载到新选项卡中。

我唯一的问题是我不知道用jQuery在新选项卡中打开目标位置的方法。 显然,不允许随意打开新选项卡,但是有没有办法将这种类型的行为分配给用户生成的操作?

谢谢!

请查看示例代码。 它可能有所帮助

 
 content of the anchor 

在javascript中你可以使用

 $('#element').mousedown(function(event) { if(event.which == 3) { // right click window.open('page.html','_newtab'); } }) 

您还需要考虑使用ctrl-click和cmd-click来打开新选项卡(分别在windows / linux和mac中。因此,这将是一个更完整的解决方案:

 jQuery.isClickEventRequestingNewTab = function(clickEvent) { return clickEvent.metaKey || clickEvent.ctrlKey || clickEvent.which === 2; }; 
  $('#element').mousedown(function(event) { if(event.which == 3) { // right click window.open("newlocation.html",""); } }); 

现场直播http://jsfiddle.net/8CHTm/1/

鼠标中键的默认操作是在新选项卡中打开。

您可以将超链接目标属性设置为_blank以打开新选项卡。

 Link 

您还可以参考这个问题如何用jQuery区分鼠标左键和右键

请尝试“_newTab”而不是“_blank”

window.open(URL,“_ newtab”);