如何在浏览器的右键菜单中禁用/删除“在新标签页中打开链接”选项? 如果使用javascript等无法做到这一点,那么有没有办法修改当用户点击此链接时会发生什么,例如,显示警告或阻止加载选项卡..?
答案 0 :(得分:8)
在新标签/窗口中打开链接的功能是许多浏览器的本机功能。如果您不希望允许此类活动,则需要通知浏览器您的链接不是真正的链接。最简单的方法是从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>
现在,浏览器在看到链接时默认为您做了一些其他事情。如果您尚未定义任何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;
}
希望这有帮助!
答案 1 :(得分:2)
现在已经解决了主要问题,很简单,只需将href的查询字符串传递给ajax函数即可。
我可能应该在我的问题中解释我想要的只是作为临时措施。无论如何,感谢所有的评论。
答案 2 :(得分:0)
我不确定为什么有人会贬低你的问题,你需要谷歌是如何使用javascript劫持事件。单击链接并停止工作时,您可以很好地显示警报。 jQuery是一个populat JS工具包,并且有一个方法来停止元素上的默认事件,用简单的英语,使用jQuery你可以阻止超链接工作并显示警报。此链接http://api.jquery.com/event.preventDefault/可以为您提供进一步的帮助。关于禁用右键单击网页上显示的上下文菜单,是的,这是非常可能的。我不是JS忍者,所以如果你可以从上下文菜单中移除一个项目但IMO不能发表评论,那就不可能了。
答案 3 :(得分:0)
我将重点介绍2条重要评论:
nnnnnn @ 2011年8月10日5:49:
作为用户,我希望从 按钮而不是链接。我希望链接能以更标准的方式工作 包括给我选择右键单击菜单或 单击鼠标中键可直接在新选项卡中打开。
Pars @ 13年12月21日,13:10:
当您通过鼠标中键单击或按住CTRL和 单击一个链接。如何处理这些情况。
由浏览器决定是否获得链接行为。
如果满足以下条件的所有所有条件,则某些现代浏览器(例如Chrome)会认为它是链接:
<a>...</a>
标记(不是span
,div
,button
等)。href
属性。href
属性不为空。下面的将获得链接行为:
<a href="http://www.website.com">Click Here</a>
下面的将不会获得链接行为:
<a>Not link because no href</a>
<a href="">Not link because empty href</a>
<span>Not link because not "a" tag</span>
<span href="http://www.website.com">Not link because not "a" tag again</span>
再次, 由浏览器决定 。如果上述三个条件中的 任何一个都匹配,则某些旧的/愚蠢的浏览器可能会给出链接行为!
如果是链接,请使用<a href="some_link">...</a>
。如果不是链接,则使用其他名称,例如<button>
。