向点击事件监听器添加“返回假”有什么作用?

JavaScript HTML

十三西门

2020-03-23

很多次,我在HTML页面中都看到过这样的链接:

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

return false在那里的作用是什么

另外,我通常不会在按钮中看到它。

在任何地方都指定了吗?在w3.org的某些规格中?

第2983篇《向点击事件监听器添加“返回假”有什么作用?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

9个回答
DavaidEva 2020.03.23

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

樱小胖Mandy 2020.03.23

在JavaScript运行之后,返回false将停止遵循超链接。这对于可以正常降级的不引人注意的javascript很有用-例如,您可以拥有一个使用javascript打开全尺寸图像弹出窗口的缩略图。当关闭javascript或单击鼠标中键(在新选项卡中打开)时,此操作将忽略onClick事件,并通常以全尺寸图像的形式打开图像。

如果未指定return false,则图像将同时启动弹出窗口并正常打开图像。某些人不是使用return false而是将javascript用作href属性,但这意味着禁用javascript时,链接将无效。

2020.03.23

这样return false可以防止页面被浏览以及窗口不必要地滚动到顶部或底部。

onclick="return false"
西门前端A 2020.03.23

return false表示不采取默认操作,如果是,<a href>默认操作是跟随链接。当您向onclick返回false时,href将被忽略。

番长樱梅 2020.03.23

在onclick事件中使用return false可以阻止浏览器处理其余的执行堆栈,包括跟踪href属性中的链接。

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

在按钮中,这是没有必要的,因为onclick就是它将执行的全部内容-没有href可以处理和转到。

乐Near 2020.03.23

我相信这不会导致标准事件的发生。

在您的示例中,浏览器将不会尝试转到#。

西里Near 2020.03.23

从JavaScript事件中将false调整为false通常会取消“默认”行为-在链接的情况下,它告诉浏览器不要遵循该链接。

Mandy村村 2020.03.23

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

我不相信对此有W3C规范。像这样的所有古代JavaScript接口都被赋予了“ DOM 0”的昵称,并且大多未指定。阅读旧的Netscape 2文档可能会有些运气。

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android