我想创建一个窗口重新加载然后位置发生变化的代码,虽然我尝试了window.location.reload(); window.location.href="#id"
但它没有用,因为当页面重新加载时,脚本将无法运行。
实际上我想清除页面上的POST数据,然后将同一页面上的位置更改为id。
答案 0 :(得分:1)
正如其他人所说,更新href
会触发重新加载,因此无需手动调用reload
。如果您确实想要这样做,则需要进行条件检查以防止您看到无限重新加载...根据网址中的某些参数说:
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")
(它应该重新加载页面并滚动到这个答案)
答案 1 :(得分:0)
只需使用
window.location.href = "#id";
window.location.reload();
您首先不需要重新加载,只需更改location.href值即可重新加载页面。