携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情
window.history属性指向 History 对象,它表示当前窗口的浏览历史。
浏览器工具栏的“前进”和“后退”按钮,其实就是对 History 对象进行操作
History 对象主要有两个属性:
History.length:当前窗口访问过的网址数量History.state:History 堆栈最上层的状态值
History历史中移动方法
History.back():移动到上一个网址,等同于点击浏览器的后退键。对于第一个访问的网址,该方法无效果。History.forward():等同于点击浏览器的前进键,移动到下一个网址History.go():指定一个整数为参数,移动到参数指定的网址(以当前地址为基准)
History添加记录方法
History.pushState()方法用于在历史中添加一条记录
window.history.pushState(state, title, url)
接受三种参数:
state:一个与添加的记录相关联的状态对象title:新页面的标题url:新网址,浏览器的地址栏将显示这个网址,必须同域
修改History对象记录
History.replaceState()方法用来修改 History 对象的当前记录
history.replaceState({page: xxx}, 'title xxx', '?page=xxx');
// URL 显示为 http://example.com/example.html?page=xxx
popstate 事件
当
history对象出现变化时,就会触发popstate事件,可以为popstate事件指定回调函数,回调函数的参数是一个event事件对象
通过pushState和replaceState方法,为当前 URL 绑定的state对象(这个state对象也可以直接通过history对象读取)
写在最后
以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)
附上学习链接,感谢这些大佬出题和解答:wangdoc.com/javascript/…