qq316107934
V2EX  ›  问与答

有没有什么办法在浏览器后退时,在上一个页面触发事件?

  •  
  •   qq316107934 · Apr 15, 2016 · 2780 views
    This topic created in 3692 days ago, the information mentioned may be changed or developed.

    现有一个 a.html ,在此页面点击某个链接进入 b.html 后,再点击浏览器后退回 a.html ,在这个过程中有没有什么办法能在 a.html 触发一个事件告诉 a.html 他是被某个链接后退回来的。
    最笨的办法就是监视 setInterval 监视 history 的 length 然后存到 sessionStorage 每次做判断,发生改变就代表是进入过别的页面了,但是好不靠谱啊,谷歌百度了一圈无果,大家有没有有什么靠谱的方法,谢谢。

    15 replies    2016-04-15 19:33:21 +08:00
    v1024
        1
    v1024  
       Apr 15, 2016
    document.referrer
    qq316107934
        2
    qq316107934  
    OP
       Apr 15, 2016
    @v1024 试过, document.referrer 在后退事件中不会被更新。
    audi
        3
    audi  
       Apr 15, 2016 via iPhone
    为什么会有这个需求
    learnshare
        4
    learnshare  
       Apr 15, 2016
    如果页面都是你自己的,可以尝试
    https://developer.mozilla.org/en-US/docs/Web/API/History_API#The_pushState()_method 不刷新页面,只修改 URL ,通过其他方式来控制 a/b 的显示
    qq316107934
        5
    qq316107934  
    OP
       Apr 15, 2016
    @audi 同学的博客,从主界面跳转到博客(WP)界面再后退时显示会有 bug 。
    qq316107934
        6
    qq316107934  
    OP
       Apr 15, 2016
    @learnshare 用 pushState 的话全部跳转代码要由 js 来接管,成本代价太高了。
    learnshare
        7
    learnshare  
       Apr 15, 2016
    @qq316107934 应该去解决遇到的那个 Bug ,而不是用更复杂的逻辑创造更多问题
    audi
        8
    audi  
       Apr 15, 2016 via iPhone
    @qq316107934 这个解决思路很奇葩呢。为什么不是解决根本问题...
    popok
        9
    popok  
       Apr 15, 2016   ❤️ 1
    我怀疑现在类似 chrome 的浏览器用鼠标手势后退,不会触发什么事件吧。因为后退都是瞬间就完成了,好像是本地缓存那种
    cxbig
        10
    cxbig  
       Apr 15, 2016
    当然是解决 Bug ,抓准了 referrer 又有何用?
    jugelizi
        11
    jugelizi  
       Apr 15, 2016
    window.onbeforeunload

    跟踪下呗

    不过这和 bug 有什么关系?
    wdhwg001
        12
    wdhwg001  
       Apr 15, 2016 via iPhone
    起初我还以为是什么支付相关的需求…
    qq316107934
        13
    qq316107934  
    OP
       Apr 15, 2016 via Android
    @popok 看来确实是不会有什么事件了.
    qq316107934
        14
    qq316107934  
    OP
       Apr 15, 2016 via Android
    @audi @learnshare @cxbig @wdhwg001 决定从根本上解决问题了,其实就是一个动画,点击导航栏链接后会将导航栏动态隐藏,但是后退不会恢复...
    qq316107934
        15
    qq316107934  
    OP
       Apr 15, 2016 via Android
    @jugelizi 试过了这个事件也不会被触发...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   972 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1012ms · UTC 22:24 · PVG 06:24 · LAX 15:24 · JFK 18:24
    ♥ Do have faith in what you're doing.