javascript window.reload然后window.location.href

时间:2015-02-14 21:13:29

标签: javascript html

我想创建一个窗口重新加载然后位置发生变化的代码,虽然我尝试了window.location.reload(); window.location.href="#id"但它没有用,因为当页面重新加载时,脚本将无法运行。
实际上我想清除页面上的POST数据,然后将同一页面上的位置更改为id。

2 个答案:

答案 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值即可重新加载页面。