前端技术之history1

一、当页面没有前驱历史记录时(就是当前为新弹出的页面,没法做goback操作即history.Go(-1)),我们就需要用到,history.lengthl了。

1. 判断浏览器的类型navigator.userAgent.indexOf('MSIE') >= 0

ie: history.length=0, 非IE的为1

2.

if(history.length > 0){  
            window.history.go( -1 );  
        }else{  
           做自己的操作 
}  
二、在H5出生以前,我们可以通过window.history访问浏览器的历史记录信息。

History 对象最初设计来表示窗口的浏览历史。但出于隐私方面的原因,History 对象不再允许脚本访问已经访问过的实际 URL。唯一保持使用的功能只有 back()forward()go() 方法。

在H5出来之后,带来了2种对History的新操作,history.pushState()和history.replaceState();这些方法会和window.onpostate事件一起工作,window.onpostate用来捕获监听历史记录改变事件。

1. history.pushState(state,title,url)往浏览器历史记录顶端添加一条历史记录,注意,如果是ifame跳转,这条记录在浏览器记录之前,也就是说后退时先触发浏览器的记录,退回前一页,再触发history.pushState加的这条记录,要像改变顺序,可以用settimeout延时。这个我在之前的一章里有详细说明。

详情请看:http://blog.csdn.net/tan9374/article/details/77734400

state:该条历史记录的state对象,用来传递参数;json对象格式;可以为空;
title:该条历史记录的标题,可以为空;
url : 该条历史记录的URL.不可以为空;

2. history.replaceState(state,title,url)修改当前URL。这个和上边的是一样的。

3. window.onpopstate 用来监听history的改变事件。

这三个一般都是配合使用的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值