千家信息网

HTML5中history怎么用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"HTML5中history怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"HTML5中history怎么用"这篇文章吧。一、
千家信息网最后更新 2026年11月02日HTML5中history怎么用

这篇文章主要为大家展示了"HTML5中history怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"HTML5中history怎么用"这篇文章吧。

一、认识window.history

window.history表示window对象的历史记录,是由用户主动产生,并且接受javascript脚本控制的全局对象。window对象通过history对象提供对览器历史记录的访问能力。它暴露了一些非常有用的方法和属性,让你在历史记录中自由前进和后退。

1、历史记录的前进和后退

在历史记录中后退,可以这么做:

window.history.back();

这就像用户点击浏览器的后退按钮一样。

类似的,你可以前进,就像在浏览器中点击前进按钮,像这样:

 window.history.forward();

2、移动到指定历史记录点

通过指定一个相对于当前页面位置的数值,你可以使用go()方法从当前会话的历史记录中加载页面(当前页面位置索引值为0,上一页就是-1,下一页为1)。

要后退一页(相当于调用back()):

 window.history.go(-1);

向前移动一页(相当于调用forward()):

window.history.go(1);

类似的,传递参数"2",你就可以向前移动2个记录点。你可以查看length属性值,了解历史记录栈中一共有多少个记录点:

window.history.length;

二、修改历史记录点

HTML5的新API扩展了window.history,使历史记录点更加开放了。可以存储当前历史记录点、替换当前历史记录点、监听历史记录点,下面逐一简要说明一下。

1、存储当前历史记录点

存储的方式类似于数组的入栈(Array.push()),在window.history里新增一个历史记录点,例如:

// 当前的url为:http://qianduanblog.com/index.htmlvar json={time:new Date().getTime()};// @状态对象:记录历史记录点的额外对象,可以为空// @页面标题:目前所有浏览器都不支持// @可选的url:浏览器不会检查url是否存在,只改变url,url必须同域,不能跨域window.history.pushState(json,"","http://qianduanblog.com/post-1.html");

执行了pushState方法后,页面的url地址为qianduanblog.com/post-1.html。

2、替换当前历史记录点

window.history.replaceState和window.history.pushState类似,不同之处在于replaceState不会在window.history里新增历史记录点,其效果类似于_window.location.replace(url),都是不会在历史记录点里新增一个记录点的。当你为了响应用户的某些操作,而要更新当前历史记录条目的状态对象或URL时,使用replaceState()方法会特别合适。

3、监听历史记录点

监听历史记录点,直观的可认为是监听URL的变化,但会忽略URL的hash部分,监听URL的hash部分,HTML5有新的API为onhashchange,我的博客里也有说到该方法和跨浏览器的兼容解决方案。可以通过_window.onpopstate来监听url的变化,并且可以获取存储在该历史记录点的状态对象,也就是上文说到的json对象,如:

// 当前的url为:http://qianduanblog.com/post-1.html_window.onpopstate=function(){    // 获得存储在该历史记录点的json对象    var json=window.history.state;    // 点击一次回退到:http://qianduanblog.com/index.html    // 获得的json为null    // 再点击一次前进到:http://qianduanblog.com/post-1.html    // 获得json为{time:1369647895656}}

值得注意的是:javascript脚本执行window.history.pushState和window.history.replaceState不会触发onpopstate事件。

还有一点注意的是,谷歌浏览器和火狐浏览器在页面第一次打开的反应是不同的,谷歌浏览器奇怪的是回触发onpopstate事件,而火狐浏览器则不会。

以上是"HTML5中history怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

历史 对象 浏览器 浏览 页面 监听 方法 存储 内容 状态 用户 篇文章 移动 不同 事件 位置 属性 按钮 火狐 脚本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 保险科技 互联网保险 互联网科技工作委员会主任 中国互联网科技工作委员会毛军 今日互联网科技 圆梦互联网科技 科技企业和互联网企业 网络科技有限互联网 互联网未来科技 互联网女皇 腾讯科技 苏州大垚互联网科技 互联网企业和科技型企业 国大互联网教育科技有限公司工作 民营互联网公司国防科技 工业互联网等科技实现智能化赋能 互联网相关科技技术 互联网科技包装股份有限公司上市 科技互联网行业投资研究 西安左小互联网科技有限公司 北京瑞云互联网科技有限公司 齐家互联网科技 互联网科技公司有哪些 北京三清互联网科技 允成互联网科技有限公司融资 爱医互联网络科技 恒生互联网科技业指数调整周期 工业互联网展湾科技股份有限公司 互联网科技企业商标注意事项 版纳互联网科技选哪家 陕西彩京云互联网科技有限公司
0