window.location.href 重定向不适用于 url 中的 #
Posted
技术标签:
【中文标题】window.location.href 重定向不适用于 url 中的 #【英文标题】:window.location.href redirection not working with # in the url 【发布时间】:2021-10-10 08:13:28 【问题描述】:如果 url 包含“#”,为什么 window.loaction.href 不会重新加载页面。
控制台中的window.location.href = window.location.href
将重新加载页面,但window.location.href = window.location.href + "#abc"
将仅替换 url 而无需重新加载。
【问题讨论】:
为什么要这样重新加载页面?当您有另一种单独的方法来实现这一点时? location.href 不会重新加载页面,直到它识别出任何 url 更改并且 #param 似乎不符合更改的条件。添加 "?param" 似乎有效 【参考方案1】:如果 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#>
标签中的标准行为。
【讨论】:
【参考方案2】:为了在 javascript 中重新加载页面,您可以简单地使用
window.location.reload()
【讨论】:
【参考方案3】:如果您想导航到同一页面上的锚点,您可以使用
window.location.hash = "#abc";
【讨论】:
以上是关于window.location.href 重定向不适用于 url 中的 #的主要内容,如果未能解决你的问题,请参考以下文章
window.location.href 重定向不适用于 url 中的 #
javascript进行重定向页面时用window.href.location为啥有时不传参数?
在 window.location.href 重定向后处理 Web API 回调的响应