在什么情况下 href="#" 会导致滚动到页面顶部?

Under what conditions does href="#" cause scrolling to the top of the page?

我正在使用 <a href="#" onclick="f();">click here</a> 类型标签来触发我网站上的操作。我发誓他们以前不这样做,但现在当我单击其中一个时,浏览器会滚动到页面顶部。

找到 this 答案后,我现在使用 href="javascript:;",效果很好。但我不可能是唯一遇到这个问题的人(除非我是)。我真的很想知道 href="#" 什么时候会这样,什么时候不会。

他们总是这样做。

请注意,您的链接的点击操作可以在 JavaScript 中被覆盖,这就是您之前可能看到过不同行为的原因。

总是,除非您的 javascript 处理程序阻止它。

function f(e) {
    e.preventDefault();
}

现在,如果您的点击调用 f(e),您将不会滚动到顶部。