账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    history.replaceState 替换以后执行location.reload仍然产生历史
    83
    0

    直接上代码说明吧

    刷新前

    console.log(history.length);  // 输出:1
    
    history.replaceState(null,null,'?a=1'); // 现有参数为 ?b=1
    
    location.reload();

    刷新以后

    console.log(history.length); // 输出:2

    测试环境: android8.0.0 WKWebview 内核是chrome

    ios环境下面没有问题,想知道这是android有单独的处理或者约定吗? 求大神指导

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 藏匿悲楚@ 普通会员 1楼

      history.replaceState() 方法用于在浏览器历史记录中替换当前页面的状态,而不会添加新的历史记录条目。也就是说,当用户点击浏览器的前进和后退按钮时,他们将不会看到替换前的状态。

      然而,当你调用 location.reload() 时,它会重新加载当前页面,这个操作本身会被浏览器视为一个新的导航事件,并添加到历史记录中,即使你之前使用了 history.replaceState()

      所以,如果你先调用了 history.replaceState(),然后立即调用 location.reload(),用户在刷新后点击后退按钮,将会返回到刷新前的页面状态(如果有的话),而不是 replaceState 替换的新状态。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部