gra*_*rai 13 javascript browser cross-browser
如何禁用/删除浏览器右键菜单中的"在新标签页中打开链接"选项?如果使用javascript等无法做到这一点,那么有没有办法修改当用户点击此链接时会发生什么,例如,显示警告或阻止加载选项卡..?
在新标签/窗口中打开链接的能力是许多浏览器的本机功能.如果您不希望允许此类活动,则需要通知浏览器您的链接不是真正的链接.最简单的方法是href从a元素中删除属性.
HTML:
<a href="http://google.com">Can be opened in new tab/window</a>
<a>Cannot be opened in new tab/window</a>
Run Code Online (Sandbox Code Playgroud)
现在,当浏览器看到链接时,默认情况下可能会为您做一些其他事情.如果您尚未定义任何a元素样式,则新的奇特伪链接可能不会显示链接字体颜色,指针和下划线.你可以继续前进,轻松地做到这一点.
CSS:
a {
color: blue;
cursor: pointer;
text-decoration: underline;
}
Run Code Online (Sandbox Code Playgroud)
希望能够回答如何在浏览器的右键菜单中禁用/删除"在新标签页中打开链接"选项的问题.对于一些额外的功劳,虽然我会假设您可能希望链接在点击时仍然像常规链接一样运行.随意使用一些JavaScript来实现这一目标.这是使用jQuery的一个例子:
JavaScript的:
$("body").on("click", "a[data-href]", function() {
var href = $(this).data("href");
if (href) {
location.href = href;
}
});
Run Code Online (Sandbox Code Playgroud)
修改后的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>
Run Code Online (Sandbox Code Playgroud)
修改后的CSS:
a[href], a[data-href] {
color: blue;
cursor: pointer;
text-decoration: underline;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
现在已经解决了主要问题,非常容易,因为只需将 href 的查询字符串传递给 ajax 函数即可。
我可能应该在我的问题中解释说我想要的只是作为临时措施。无论如何,感谢所有的评论。