javascript window.reload then window.location.href

javascript window.reload then window.location.href

本文关键字:window href location reload javascript then      更新时间:2023-10-29

我想编写一个代码,在其中重新加载窗口,然后更改位置,尽管我尝试了window.location.reload(); window.location.href="#id",但它不起作用,因为当页面重新加载时,脚本将不会运行
实际上,我想从页面中清除POST数据,然后将同一页面上的位置更改为id。

正如其他人所说,更新href将触发重新加载,因此不需要手动调用reload。如果你真的想这样做,那就需要进行条件检查,以防止你看到的无限次重新加载。。。比如基于url中的一些参数,比如:

if (window.location.hash === '') {
    window.location.hash = '#id';
    window.location.reload();
} else {
    window.location.hash = '';
}

仅仅更新hash不会导致重新加载,因此以下操作不起作用(它只会移动到位置)

window.location.href = '#answer-28520707').

然而,你可以这样做:

window.location.href = "?_reload" + Date.now() + "#answer-28520707"

查询参数将导致浏览器刷新页面,哈希将跳转到新位置。

如果你想测试这个,试着在控制台中粘贴上面的内容,或者在地址栏中键入:

javascript:void(window.location.href = "?_reload" + Date.now() + "#answer-28520707")

(它应该重新加载页面并滚动到此答案)

只需使用

window.location.href = "#id";
window.location.reload();

您不需要先重新加载,只需更改location.href值即可重新加载页面。