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

时间:2012-04-18 22:34:15

标签: javascript html href

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

4 个答案:

答案 0 :(得分:16)

为了防止链接执行,一种方法是让“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>

答案 1 :(得分:8)

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

是的,您需要prevent the default action该事件。您可以在onclick属性中返回false来执行此操作。