感谢您阅读此文章并花费时间。让我们直接进入主题!
我目前正在尝试禁用一个功能,即用户不能通过按住链接来打开新窗口或标签页。
如果您有任何建议或解决此问题的答案,我们将不胜感激, 再次感谢!
感谢您阅读此文章并花费时间。让我们直接进入主题!
我目前正在尝试禁用一个功能,即用户不能通过按住链接来打开新窗口或标签页。
如果您有任何建议或解决此问题的答案,我们将不胜感激, 再次感谢!
.preventDefault()
方法取消链接的跳转。您的代码应该像这样:$('a').click(function(event){
event.preventDefault();
});
<form method="GET" action="http://example.com/..."><input type="submit" value="click here for more information" class="pseudo-link-input" /></form>
,并应用大量的 CSS 样式使该按钮看起来像一个链接。<input type="hidden".../>
元素(这需要查询字符串能够由 HTML 表单构造)。
- 在技术上,浏览器也可能会给用户在新窗口中打开表单结果的选项,但实际上我不知道有哪些浏览器这样做。
- 当然,在他们点击链接并且页面出现在历史记录中后,他们可以在任何选项卡/窗口中访问该 URL。一些浏览器,如 Firefox,甚至允许用户在新标签页中打开“返回”或“前进”,因此这不需要太多的努力。
- 至少在某些浏览器中,这也会防止用户选择和复制链接文本。如果他们复制页面文本,则所有链接文本都有可能被静默删除。
- 它可能还会引起各种其他问题。(绕过基本浏览器功能从来不是一个好主意。)上述注意事项只是我能想到的第一批内容。CSS:
a{
color: blue;
cursor: pointer;
text-decoration: underline;
}
脚本:
var links = document.getElementsByTagName("a");
for(var i=0; i < links.length; i++){
links[i].setAttribute("data-href", links[i].getAttribute("href"));
links[i].removeAttribute("href");
links[i].onclick = function(){
window.location = this.getAttribute("data-href");
};
}
你可能需要使用一些JavaScript将新内容加载到现有页面中。但这意味着您的网站将没有任何历史记录(除非您手动添加它),因此它会破坏导航,并且无法保证用户只是将URL复制并粘贴到新窗口或选项卡中。
本质上,如果您需要禁用基本操作系统(是的,对于网站来说,浏览器就是操作系统)操作,那么您正在做错事。(在您的设计或预期行为方面。)