window.location.href 重定向不适用于 url 中的#

window.location.href redirection not working with # in the url

如果 url 包含“#”,为什么 window.loaction.href 不重新加载页面。 控制台中的 window.location.href = window.location.href 将重新加载页面,但 window.location.href = window.location.href + "#abc" 将仅替换 url 而无需重新加载。

要在 javascript 中重新加载页面,您只需使用

window.location.reload()

如果您想导航到同一页面上的锚点,您可以使用

window.location.hash = "#abc";
如果 URL 中有锚点 (#),

window.location.href = window.location.href 将不会重新加载页面,它与 <a href="#abc> 标签具有相同的行为。

另外window.open(window.location.href + "#abc","_self")不会刷新页面。

而且这也行不通:

window.location.href = window.location.href + "#rr";
window.reload();

还有 window.location.replace( window.location.href + "#abc"); 也不行。

显然这是 <a href="#abc#> 标签中的标准行为。