需要判断上一个页面的来源,但是有时够没有刷新,导致referrer得到的是之前的URL。
比如页面A-> B -> C -> B
A -> B document.referrer = a
B -> C document.referrer = b
C -> B 无刷新,导致返回2后,document.referrer = a, 而我想得到的是C的url。
JS在B页面获取上一个页面的URL,有哪些获取的方法,有没有办法解决这种问题?
需要判断上一个页面的来源,但是有时够没有刷新,导致referrer得到的是之前的URL。
比如页面A-> B -> C -> B
A -> B document.referrer = a
B -> C document.referrer = b
C -> B 无刷新,导致返回2后,document.referrer = a, 而我想得到的是C的url。
JS在B页面获取上一个页面的URL,有哪些获取的方法,有没有办法解决这种问题?
使用单页面的话 document.referrer 会一直为空(.html或者ssr网页则存在值)
History.length 表示用户历史会话页面的数量。当用户从新的标签页或框架载入页面其值为“1”,每访问一个页面该值增加“1”。
因为history.length 的数量只增不减,根本不能拿来做判断。
需要判断用户从微信浏览器通过浏览器打开当前网页,如果是则当用户点击返回按钮时返回到web应用(站点)首页
或:判断是否有前一页
通过history.length
history.length === 1
(其中手机浏览器中为1,chrome控制台为2)或:判断用户是否访问过
或:判断 history 中是否存在指定url
或:判断是否是通过微信浏览器唤醒设备浏览器再打开到当前网页的
肯定还有其他方法实现 当用户点击返回按钮时返回到web应用(站点)首页
这个功能的,现在脑袋有点晕,如果有的话,也希望能得到分享,非常感谢。
对了,Vuex能否判断呢?实在是没有找到相关(内置)方法,或许有。不过即便没有的话也没关系,自己扩展一个就行。
别忘记监听浏览器的返回事件啦 :
window.addEventListener("popstate", function(e) {
alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能
}, false);
[狗头]
当用户在微信中打开web应用(站点)时,则提示用户使用浏览器打开;
再配合 Cookie和sessionStorage 缓存了router记录来判断用户点击返回按钮时是否需要直接回到home页;
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答921 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
考虑用一下HTML 5的API来改变历史记录:操纵浏览器的历史记录