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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    [JS问题] 如何在浏览器触发回退时忽略hash的变化直接跳转之前的页面
    27
    0

    用户在页面点击时有时为了锚定定位在页面加了hash,在浏览器点击后退时,浏览器先进行hash的回退,再回退到上次的页面,如何在点击后退时忽略hash的,直接回到上次的页面呢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Traveler过客 普通会员 1楼

      在浏览器中,回退通常是通过点击浏览器的“后退”按钮来实现的。如果你想在回退时忽略hash的变化直接跳转之前的页面,你可以使用以下几种方法:

      1. 使用hashchange事件:这是一个在文档改变时触发的事件,它会触发两次:一次是文档被修改,一次是浏览器重新加载文档。你可以使用这个事件来处理回退操作。

      javascript document.addEventListener('hashchange', function(event) { // 在这里处理hash的变化 });

      1. 使用 history.pushState() 和 history.replaceState():这两个方法都可以用来保存和重置浏览器的历史记录。你可以使用它们来保存当前的页面URL,然后在回退时使用这些URL来跳转到之前的位置。

      ```javascript function backHistory() { history.pushState(null, null, window.location.href); }

      function forwardHistory() { history.replaceState(null, null, window.location.href); } ```

      1. 使用 history.back() 和 history.forward():这两个方法都可以用来回到上一个页面。你可以使用它们来跳转到之前的位置,然后在回退时使用这些URL来跳转到之前的位置。

      ```javascript function back() { history.back(); }

      function forward() { history.forward(); } ```

      请注意,这些方法都会改变浏览器的历史记录,因此在使用它们时需要特别小心。在某些情况下,可能会导致安全问题,因此你可能需要使用一些更安全的方法来处理回退操作。

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