javascript - 在 onclick 上确定单击的链接是否意味着打开新窗口或选项卡

标签 javascript hyperlink tabs click target

大多数现代浏览器都支持命令 ctrl+clickcommand+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/

相关文章:

javascript - 使用 jQuery 将 div 附加到文档末尾?

javascript 如何更改鼠标悬停在表格单元格上的链接颜色?

css - 在 CSS 上将制表符转换为空格

javascript - 从输入框获取值,根据一定条件改变url

Javascript 监听器捕获当前加载资源的 URL

javascript - 在 promise AngularJS/ES6 解决后检索存储在服务中的数据

php - PHP 中的 <a href =""> 用于在源代码 View 中隐藏链接

c - Microsoft Visual Studio 中的外部链接问题

macos - 从命令行打开新的终端选项卡 (Mac OS X)

jquery 保持 div 在悬停时可见