现有一个 a.html ,在此页面点击某个链接进入 b.html 后,再点击浏览器后退回 a.html ,在这个过程中有没有什么办法能在 a.html 触发一个事件告诉 a.html 他是被某个链接后退回来的。
最笨的办法就是监视 setInterval 监视 history 的 length 然后存到 sessionStorage 每次做判断,发生改变就代表是进入过别的页面了,但是好不靠谱啊,谷歌百度了一圈无果,大家有没有有什么靠谱的方法,谢谢。
现有一个 a.html ,在此页面点击某个链接进入 b.html 后,再点击浏览器后退回 a.html ,在这个过程中有没有什么办法能在 a.html 触发一个事件告诉 a.html 他是被某个链接后退回来的。
最笨的办法就是监视 setInterval 监视 history 的 length 然后存到 sessionStorage 每次做判断,发生改变就代表是进入过别的页面了,但是好不靠谱啊,谷歌百度了一圈无果,大家有没有有什么靠谱的方法,谢谢。
|
v1024Apr 15, 2016
1
document.referrer
|
|
2
@v1024 试过, document.referrer 在后退事件中不会被更新。
|
|
audiApr 15, 2016 via iPhone
3
为什么会有这个需求
|
|
learnshareApr 15, 2016
4
如果页面都是你自己的,可以尝试
https://developer.mozilla.org/en-US/docs/Web/API/History_API#The_pushState()_method 不刷新页面,只修改 URL ,通过其他方式来控制 a/b 的显示 |
|
5
@audi 同学的博客,从主界面跳转到博客(WP)界面再后退时显示会有 bug 。
|
|
6
@learnshare 用 pushState 的话全部跳转代码要由 js 来接管,成本代价太高了。
|
|
learnshareApr 15, 2016
7
@qq316107934 应该去解决遇到的那个 Bug ,而不是用更复杂的逻辑创造更多问题
|
|
audiApr 15, 2016 via iPhone
8
@qq316107934 这个解决思路很奇葩呢。为什么不是解决根本问题...
|
|
9
我怀疑现在类似 chrome 的浏览器用鼠标手势后退,不会触发什么事件吧。因为后退都是瞬间就完成了,好像是本地缓存那种
|
|
cxbigApr 15, 2016
10
当然是解决 Bug ,抓准了 referrer 又有何用?
|
|
jugeliziApr 15, 2016
11
window.onbeforeunload
跟踪下呗 不过这和 bug 有什么关系? |
|
wdhwg001Apr 15, 2016 via iPhone
12
起初我还以为是什么支付相关的需求…
|
|
13
@popok 看来确实是不会有什么事件了.
|
|
14
|
|
15
@jugelizi 试过了这个事件也不会被触发...
|