版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
前言
项目开发时候,经常会涉及到关于浏览器历史记录的一些操作,比如当前页面点击微信返回按钮后跳转到某一特定页面等等。吃过这个苦,方之水之深,水深不可怕,关键在于勤。
如何生成一条历史记录
简单粗暴的方法,直接在当前页面的地址栏中输入地址点击页面中有a标签的href执行location.href = ‘xxx’(location.replace(‘xxx’)生成一条记录取代当前指针所指向的记录)表单提交跳转(注意只能跳到当前窗口)使用pushState方法可以不刷新页面就可以生成一条历史记录,页面URL发生改变
简而言之,只要当页面的URL改变时,就会生成一条历史记录。在IE8及更高的版本中、Opera、Firefox、Chrome、Safari3及更高的版本中改变hash也会生成一条历史记录。
浏览器对历史记录的管理
栈
历史记录在浏览器中以栈的形式进行管理,每次增添的历史记录都会在栈的最顶端,以谷歌浏览器为例
html代码: