为什么在 location.reload() 之后使用 onclick 返回 false?

Fil*_*hta 2 html javascript reload

我正在制作一个使用location.reload()方法的JavaScript应用程序。该方法是在事件处理程序重置页面,而这个回答说,你需要后用:如何使用JavaScript来重新加载页面location.reload()onclickreturn false;location.reload()onclick

location.reload();

有关更多信息,请参阅此MDN 页面

如果您在之后刷新,onclick则需要在之后直接返回 false

location.reload();
return false;
Run Code Online (Sandbox Code Playgroud)

为什么要使用return false;方法之后?location.reload()onclick

hev*_*ev1 5

如果事件侦听器附加到链接,则单击链接将导致转到另一个页面而不是重新加载页面。return false将阻止内联事件处理程序和onclick属性中的默认操作。

没有return false

document.querySelector('a').onclick = function() {
  location.reload();
}
Run Code Online (Sandbox Code Playgroud)
<a href="https://www.example.com">Click</a>
Run Code Online (Sandbox Code Playgroud)

return false

console.log('Loaded', new Date);
document.querySelector('a').onclick = function() {
  location.reload();
  return false;
}
Run Code Online (Sandbox Code Playgroud)
<a href="https://www.example.com">Click</a>
Run Code Online (Sandbox Code Playgroud)

在现代 JavaScript 中,将使用addEventListenerandevent.preventDefault()代替。

document.querySelector('a').addEventListener('click', function(e){
    e.preventDefault();
    location.reload();
});
Run Code Online (Sandbox Code Playgroud)

  • @Mike'Pomax'Kamermans 我知道这一点。这个例子只是为了解释为什么建议“return false”。 (3认同)
  • 这是一个足够公平的例子,说明何时返回 false 是适用的。 (2认同)
  • 这是一个很好的例子,说明了“return false”是必要的情况。不过,我确实想指出,您_可能_不应该将刷新页面的点击处理程序放在带有“href”的“a”标签上;可能很少有情况会表明这一点。因此,该场景是一个很好的例子,但是,如果您遇到这种确切的场景,请将其视为代码异味。 (2认同)