javascript – 在将自定义功能应用于点击事件时,防止“劫持”链接点击的意图

前端之家收集整理的这篇文章主要介绍了javascript – 在将自定义功能应用于点击事件时,防止“劫持”链接点击的意图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,有一些 JavaScript代码有一个单击处理程序,用于确定用户应该重定向到的位置.假设它只是一个用户点击链接时计算的重定向随机链接. @H_404_2@以下是一些场景:

@H_404_2@>如果用户左键单击链接,则用户的意图是将导航保留在同一选项卡中,这与window.location一起正常工作.
>如果用户中间单击此链接,则向用户显示网站已劫持中间点击并忽略它,将用户重定向到同一选项卡而不是新选项卡.
>另外,正如有人刚刚评论过(并删除评论?),另一种情况是修改键还可以建议浏览器打开新标签,甚至是新窗口.
>另一个建议是能够通过上下文菜单在新选项卡或窗口中打开链接.这不太重要,但绝对是相同的可用性问题.

@H_404_2@我在许多网站上看到过这个问题,特别是对我来说,谷歌分析,几乎每次我点击中间,这种效果都会发生.

@H_404_2@一些JavaScript代码需要的一个很好的例子:

@H_404_2@Process some data,then send off a XHR request that needs to be
completed before allowing the user to continue to the link they
clicked on.

@H_404_2@你怎么解决这个问题?例如有没有办法检测用户是否期望链接出现在新标签中,如果是,是否可以加载新标签?也许我正在考虑这个错误方法

解决方法

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:

<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

原文链接:https://www.f2er.com/js/158029.html

猜你在找的JavaScript相关文章