为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查用户是否可以返回浏览器历史记录

如何检查用户是否可以返回浏览器历史记录

慕容708150 2019-08-08 10:48:17
如何检查用户是否可以返回浏览器历史记录我想用JavaScript来查看是否有历史记录,我的意思是如果浏览器上有后退按钮可用。
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

简答:你做不到。

从技术上讲,有一种准确的方法,即检查财产:

history.previous

但是,它不会起作用。这样做的问题是,在大多数浏览器中,这被认为是安全违规,通常只返回undefined

history.length

那是其他人所说的属性...... 
然而,长度不完全,因为它并不表示工作的地方在你的历史。此外,它并不总是以相同的数字开头。例如,未设置为具有登录页面的浏览器从0开始,而使用朗读页面的另一浏览器将从1开始。

https://img1.sycdn.imooc.com//5d4b8d8a0001d18403240352.jpg

大多数情况下,添加了一个调用的链接:

history.back();

要么

 history.go(-1);

并且只是期望如果你不能回去,那么点击链接什么都不做。


查看完整回答
反对 回复 2019-08-08
?
Qyouu

TA贡献1786条经验 获得超11个赞

还有另一种检查方法 - 检查推荐人。第一页通常会有一个空的推荐人......

if (document.referrer == "") {
    window.close()} else {
    history.back()}


查看完整回答
反对 回复 2019-08-08
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我的代码让浏览器返回一页,如果失败则加载一个后备网址。它还检测主题标签的更改。

当后退按钮不可用时,后退网址将在500毫秒后加载,因此浏览器有足够的时间加载上一页。之后加载后备网址window.history.go(-1);会导致浏览器使用后备网址,因为js脚本尚未停止。

function historyBackWFallback(fallbackUrl) {
    fallbackUrl = fallbackUrl || '/';
    var prevPage = window.location.href;

    window.history.go(-1);

    setTimeout(function(){ 
        if (window.location.href == prevPage) {
            window.location.href = fallbackUrl; 
        }
    }, 500);}


查看完整回答
反对 回复 2019-08-08
  • 3 回答
  • 0 关注
  • 691 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号