pushstate
假设一个使用场景:
后台管理系统项目,左右固定布局。左侧是通用布局,右侧页面是通过ajax切换的
当我们切换菜单后,想返回上一页,通常点击浏览器自带的回退。会发现回退的不是上一页,而是最开始打开这个项目的那一页。并且当我们刷新当前页面。也会自动回退到最初始的页面
原因:我们切换菜单的时候并没有跳转页面,只是用过ajax把我们想要的那也插在右侧DIV中。没有跳转页面就意味着浏览器没有存下历史记录。
解决办法:
每次调用ajax的时候,并且调用成功,我们都在内部加上这个 history.pushstate()方法
history.pushState方法接受三个参数,依次为:
state:一个与指定网址相关的状态对象,popstate事件触发时,该对象会传入回调函数。如果不需要这个对象,此处可以填null。
title:新页面的标题,但是所有浏览器目前都忽略这个值,因此这里可以填null。
url:新的网址,必须与当前页面处在同一个域。浏览器的地址栏将显示这个网址。
假定当前网址是example.com/1.html,我们使用pushState方法在浏览记录(history对象)中添加一个新记录。
var stateObj = { foo: 'bar' };
history.pushState(stateObj, 'page 2', '2.html');
这样地址栏就可以看到我们自己存的标识了。历史记录也就存进去了
举个栗子:
https://1277502619.github.io/admin/index.html
文章最后发布于: 2018-10-01 16:03:52
相关阅读
Javascript history对象的 history.pushState() 和 hi
history.pushState() 和 history.replaceState() 是history对象的两个新增的方法,是可以很好的操作历史记录的方法;history.State()
history.go()和history.back()的用法与区别
Javascript:history.go()和history.back()的用法与区别 简单的说就是:go(-1):返回上一页,原页面表单中的内容会丢失;back():返回上一
今天在做一个vue的搜索功能,需要从搜索结果页面跳转到细节页面,然后点击返回还能返回到刚刚的结果页面,如果只用window.history.go(-
history.pushState是HTML5的特殊,IE8+支持意思是在不刷新浏览器的情况下给浏览器记录插入队列的意思.“插菊花“参考地址:https://d
1、简介window.history是用来保存用户在一个会话期间的网站访问记录,并提供相应的方法进行追溯。其对应的成员如下:方法:back()、for