Rem*_*emo 6 javascript tabs click hyperlink target
大多数现代浏览器在新选项卡或新窗口中支持命令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>
Run Code Online (Sandbox Code Playgroud)
jQuery:
$("a").bind("click", function(e){
if($(this).attr("target") != "_blank"){
e.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:
您可以像这样考虑 ctrl+clicks:
$("a").bind("click", function(e){
if($(this).attr("target") != "_blank"){
if(!e.ctrlKey){
e.preventDefault();
}
}
});
Run Code Online (Sandbox Code Playgroud)