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