确定 onclick 时单击的链接是否要打开新窗口或选项卡

2024-03-23

大多数现代浏览器都支持这些命令ctrl+click or command+click或类似于在新选项卡或新窗口中打开链接。

在应用程序中,我希望在单击时禁用链接。但前提是目标是同一个窗口(例如,如果它在新选项卡中打开,我不希望链接被禁用,因为再次单击它是合理的)。

我做了一些尝试并调试了单击时创建的事件对象 - 但我找不到有关目标是新选项卡还是新窗口的任何信息。

已知的解决方法:当然可以检查在单击特定链接时是否按下了某个键,这是一件简单的事情 - 但由于这些命令因浏览器和操作系统而异,因此必须定义复杂的映射和谁现在确切地知道用户配置了什么等等。

有没有可靠的方法来确定是否应在新选项卡或窗口中打开该位置?


这里有一个工作示例:http://jsfiddle.net/pioul/eCuNU/4/ http://jsfiddle.net/pioul/eCuNU/4/

仅当链接将在新选项卡/窗口中打开时,此脚本才允许单击链接(基于target="_blank"属性。

HTML:

<a href="http://google.fr" target="_blank">new window</a>
<a href="http://google.fr" target="_self">same window 1</a>
<a href="http://google.fr" target="">same window 2</a>

jQuery:

$("a").bind("click", function(e){
    if($(this).attr("target") != "_blank"){
        e.preventDefault();
    }
});

EDIT:

您可以像这样考虑 ctrl + 单击:

$("a").bind("click", function(e){
    if($(this).attr("target") != "_blank"){
        if(!e.ctrlKey){
            e.preventDefault();
        }
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定 onclick 时单击的链接是否要打开新窗口或选项卡 的相关文章

随机推荐