HTML5引入了history.pushState()和history.replaceState()这两个方法,他们允许添加和修改history实体。同时,这些方法会和window.onpostate事件一起工作.
- replaceState是替换当前的历史信息,pushState是添加一条新的历史记录
- 这两个方法有三个参数(state,title,url);
- 第一个参数是一个json格式的参数,他可以存储我们在当前历史以后会用到的数据,也可以传null;第二个官方的介绍是说页面的标题,不过暂时用不到,直接传null就可以了;第三个参数是当前历史的url,如果为null则表示当前历史的url和上一历史的url没发生变化
示例:history.pushState({name:”名字”},null,”?name=张三”);
注意:1.使用这两个方法时并不会直接触发onpopstate,而是存储了历史记录后前进或后退才会会触发onpopstate事件
2.history.pushstate有安全限制,其中之一是不允许应用推动跨url-s历史起源;服务器ip的端口不同和直接在电脑本地运行的html都会报错: