我在HTML页面中见过很多这样的链接:

<a href='#' onclick='someFunc(3.1415926); return false;'>Click here !</a>

这里return false的效果是什么?

而且,我通常不会在按钮中看到这种情况。

这在任何地方都指定了吗?在w3.org的一些规范中?


当前回答

在onclick事件中使用return false将阻止浏览器处理执行堆栈的其余部分,包括遵循href属性中的链接。

换句话说,添加return false会使href停止工作。在你的例子中,这正是你想要的。

在按钮中,这是不必要的,因为onclick是它将执行的所有操作——没有href来处理和前往。

其他回答

从JavaScript事件中返回false通常会取消“默认”行为——在链接的情况下,它告诉浏览器不要跟踪该链接。

浏览器黑客: http://jszen.blogspot.com/2007/03/return-false-to-prevent-jumping.html

事件处理程序的返回值决定是否也应该发生默认的浏览器行为。在单击链接的情况下,这将跟随链接,但在表单提交处理程序中最明显的区别是,如果用户在输入信息时犯了错误,您可以取消表单提交。

我不相信有一个W3C规范。像这样的所有古老的JavaScript接口都被冠以“DOM 0”的绰号,而且大多数都没有具体说明。您可以有幸阅读旧的Netscape 2文档。

实现这种效果的现代方法是调用event.preventDefault(),这在DOM 2 Events规范中指定。

返回false将阻止导航。否则,位置将成为someFunc的返回值

你可以从下面的例子中看出区别:

<a href="http://www.google.co.uk/" onclick="return (confirm('Follow this link?'))">Google</a>

单击“ok”返回true,然后是链接。点击“取消”返回false,并且不遵循链接。如果javascript被禁用,链接是正常的。