例如,有一些
JavaScript代码有一个单击处理程序,用于确定用户应该重定向到的位置.假设它只是一个用户点击链接时计算的重定向随机链接.
@H_404_2@以下是一些场景:
@H_404_2@>如果用户左键单击链接,则用户的意图是将导航保留在同一选项卡中,这与window.location一起正常工作.
>如果用户中间单击此链接,则向用户显示网站已劫持中间点击并忽略它,将用户重定向到同一选项卡而不是新选项卡.
>另外,正如有人刚刚评论过(并删除了评论?),另一种情况是修改键还可以建议浏览器打开新标签,甚至是新窗口.
>另一个建议是能够通过上下文菜单在新选项卡或窗口中打开链接.这不太重要,但绝对是相同的可用性问题. @H_404_2@我在许多网站上看到过这个问题,特别是对我来说,谷歌分析,几乎每次我点击中间,这种效果都会发生. @H_404_2@一些JavaScript代码需要的一个很好的例子:
>如果用户中间单击此链接,则向用户显示网站已劫持中间点击并忽略它,将用户重定向到同一选项卡而不是新选项卡.
>另外,正如有人刚刚评论过(并删除了评论?),另一种情况是修改键还可以建议浏览器打开新标签,甚至是新窗口.
>另一个建议是能够通过上下文菜单在新选项卡或窗口中打开链接.这不太重要,但绝对是相同的可用性问题. @H_404_2@我在许多网站上看到过这个问题,特别是对我来说,谷歌分析,几乎每次我点击中间,这种效果都会发生. @H_404_2@一些JavaScript代码需要的一个很好的例子:
@H_404_2@Process some data,then send off a XHR request that needs to be@H_404_2@你怎么解决这个问题?例如有没有办法检测用户是否期望链接出现在新标签中,如果是,是否可以加载新标签?也许我正在考虑这个错误的方法?
completed before allowing the user to continue to the link they
clicked on.
解决方法
event.button可用于标识单击了哪个鼠标按钮.
中间按钮返回1. @H_404_2@事件对象还包含属性event.ctrlKey,event.altKey和event.shiftKey,它们是不言自明的.如果按下相应的键,则它们的值为true,否则为false. @H_404_2@您希望实现的行为:http://jsfiddle.net/pratik136/nCdhv/9/ @H_404_2@HTML:
浏览器支持:http://help.dottoro.com/ljaxplfi.php
中间按钮返回1. @H_404_2@事件对象还包含属性event.ctrlKey,event.altKey和event.shiftKey,它们是不言自明的.如果按下相应的键,则它们的值为true,否则为false. @H_404_2@您希望实现的行为:http://jsfiddle.net/pratik136/nCdhv/9/ @H_404_2@HTML:
<a id="smart" href="http://www.bbc.co.uk/">Click</a>@H_404_2@JS:
$(function() { $('#smart').on('click',function(event) { if (event && event.button && event.button === 1) { event.preventDefault(); window.open($('#smart').attr('href'),'_blank'); return false; } else { return true; } }); });@H_404_2@src:https://developer.mozilla.org/En/DOM/Event.button
浏览器支持:http://help.dottoro.com/ljaxplfi.php