javascript - 如何禁用浏览器中的 'Open Link in New Tab'?

标签 javascript browser cross-browser

如何禁用/删除浏览器右键单击菜单中的“在新选项卡中打开链接”选项? 如果使用 javascript 等无法做到这一点,那么有没有办法修改用户单击此链接时发生的情况,例如,显示警报或阻止选项卡加载..?

最佳答案

在新选项卡/窗口中打开链接的能力是许多浏览器的 native 功能。如果您不希望允许此类事件,则需要通知浏览器您的链接不是真正的链接。最简单的方法是从 a 元素中删除 href 属性。

HTML:

<a href="http://google.com">Can be opened in new tab/window</a>
<a>Cannot be opened in new tab/window</a>

现在浏览器在看到链接时可能会默认为您做一些其他事情。如果您还没有定义 a 元素的任何样式,您的新奇特伪链接很可能不会显示链接字体颜色、指针和下划线。您可以继续轻松地做到这一点。

CSS:

a {
    color: blue;
    cursor: pointer;
    text-decoration: underline;
}

这有望回答您如何禁用/删除浏览器右键单击菜单中的“在新选项卡中打开链接”选项的问题。对于一些额外的信用,尽管我假设您可能希望链接在单击时仍然像常规链接一样运行。随意使用一些 JavaScript 来实现它。下面是一个使用 jQuery 的示例:

JavaScript:

$("body").on("click", "a[data-href]", function() {
    var href = $(this).data("href");
    if (href) {
        location.href = href;
    }
});

修改后的 Html:

<a href="http://google.com">Can be opened in new tab/window</a>
<a data-href="http://google.com">Cannot be opened in new tab/window</a>

修改后的 CSS:

a[href], a[data-href] {
    color: blue;
    cursor: pointer;
    text-decoration: underline;
}

希望这对您有所帮助!

关于javascript - 如何禁用浏览器中的 'Open Link in New Tab'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7006178/

相关文章:

javascript - 遍历 DOM

javascript - setInterval() 在 Firefox 和 Chrome 中的行为不同

html - 如果图像的 src 和 div 的背景图像中都使用了图像,浏览器会下载图像两次吗?

html - 图像随着浏览器宽度的减小而被压扁

css - Superfish 菜单在 IE9 中消失

javascript - OpenShift NodeJS 部署 : socket. io index.html 端口分配等

javascript - 让 jquery-confirm 返回一个值

javascript - Jquery Dialog 打开多个对话框

css - 容器 "CSS outline"的大小在 chrome/ie 和 FF 中不同

css - -webkit-box-orient 和 --webkit-box-flex 浏览器兼容性