大多数现代浏览器都支持命令 ctrl+click
或 command+click
或类似命令以在新选项卡或新窗口中打开链接。
在应用程序中,我希望链接在单击时被禁用。但前提是目标是同一个窗口(例如,如果它在新选项卡中打开,我不希望该链接被禁用,因为再次单击它是合理的)。
我做了一些尝试并调试了点击时创建的事件对象 - 但我找不到关于目标是新选项卡还是新窗口的任何信息。
已知的解决方法:当然可以在单击特定链接时检查是否按下了某个键,这是一件简单的事情 - 但由于这些命令因浏览器和浏览器以及操作系统而异,因此必须定义一个复杂的映射以及谁现在确切了解用户配置的内容等等。
是否有任何可靠的方法来确定该位置是否应在新选项卡或窗口中打开?
最佳答案
这里有一个工作示例: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();
}
});
编辑:
您可以像这样考虑 ctrl+clicks:
$("a").bind("click", function(e){
if($(this).attr("target") != "_blank"){
if(!e.ctrlKey){
e.preventDefault();
}
}
});
关于javascript - 在 onclick 上确定单击的链接是否意味着打开新窗口或选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343742/