14

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

4

4 回答 4

18

为了防止链接执行,一种方法是让“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>
于 2012-04-18T22:36:53.577 回答
10

您必须防止默认点击功能:

function stopDefAction(evt) {  
  evt.preventDefault();  
} 
于 2012-04-18T22:37:27.610 回答
1

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

于 2012-04-18T22:36:19.513 回答
1

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

<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').href="javascript:void(0)"
</script>
于 2015-10-05T16:48:07.723 回答