繁体   English   中英

html - 如何防止浏览器打开href中指定的链接?

[英]html - How to prevent the browser from opening the link specified in href?

我目前正在制作文件浏览器。 如果用户点击文件的链接,打开一个小窗口并询问选项(如下载和查看)。 我使用onclick属性完成了这个。 如果我点击链接,则执行javascript,但在此之后,href中指定的url会打开。 我要做的是:如果你点击链接javascript得到执行,并最终转发你。 但是,如果链接被右键单击,则“复制链接位置”仍应可用。 我正在考虑通过阻止转发脚本来解决这个问题。 因此,如果链接被右键单击,则不会执行javascript,您可以复制链接位置。 但是,如果您单击链接,则执行javascript并且不会打开链接。 这可能与JavaScript,或有没有任何其他方式来实现这种行为?

为了防止链接执行,一种方法是让“onclick”方法返回false

例如:

<a href="http://..." onclick="return clickfunc()">...</a>

如果clickfunc()返回false ,则链接上的单击不会指向“http:// ...”

虽然你可能更喜欢处理它

<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').onclick = function() { 
      ... 
      else { return false; }
};
</script>

您必须阻止点击功能的默认值:

function stopDefAction(evt) {  
  evt.preventDefault();  
} 

你可以用文本“javascript:void(0)”替换href属性,例如:

<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').href="javascript:void(0)"
</script>

是的,您需要阻止事件的默认操作 您可以通过在onclick属性中返回false来执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM