一、popstate用来做什么的?

简而言之就是HTML5新增的用来控制浏览器历史记录的api。

二、过去如何操纵浏览器历史记录?

window.history对象,该对象上包含有length和state的两个值,在它的__proto__上继承有back、forward、go等几个功能函数

在popstate之前,我们可以利用back、forward、go对history进行后退和前进操作。

例如:

history.back(); (后退一步,使用history.go(-1)也可实现后退效果)

弊端:只能操作前进后退,但是无法控制前进后要去哪,history.length都只会维持原来的状态

三、popstate的怎么用?

HTML5的新API扩展了window.history,使历史记录点更加开放了。可以存储当前历史记录点pushState、替换当前历史记录点replaceState、监听历史记录点popstate。

pushState、replaceState两者用法差不多。

使用方法:

history.pushState(data,title,url);

//其中第一个参数data是给state的值;第二个参数title为页面的标题,但当前所有浏览器都忽略这个参数,传个空字符串就好;第三个参数url是你想要去的链接;

replaceState用法类似,例如:history.replaceState("首页","",location.href+ "#news");

两者区别:pushState会改变history.length,而replaceState不改变history.length

通过下图我们可以对比看出pushState和replaceState的差别(注意看history.length的变化):

图解用HTML5的popstate如何玩转浏览器历史记录

新闻

音乐

varlocationHref=location.href;

document.addEventListener("click",function(event) {vartarget=event.target;if(target.className== "js-news") {

history.pushState("首页","", locationHref+ "#news");

}else if(target.className== "js-music") {

history.pushState("音乐","", locationHref+ "#music");

}

});/*document.addEventListener("click",function(event){

var target = event.target;

if(target.className == "js-news"){

history.replaceState("首页","",locationHref + "#news");

}else if(target.className == "js-music"){

history.replaceState("音乐","",locationHref + "#music");

}

});*/window.addEventListener("popstate",function() {

console.log(history.state);

})

popstate_图解用HTML5的popstate如何玩转浏览器历史记录相关推荐

  1. HTML5的popstate、pushState、replaceState如何玩转浏览器历史记录

    一.popstate用来做什么的? 简而言之就是HTML5新增的用来控制浏览器历史记录的api. 二.过去如何操纵浏览器历史记录? window.history对象,该对象上包含有length和sta ...

  2. html5 保存 搜索历史,html5 – 如何有效处理Dart中的浏览器历史记录(即后退按钮)?...

    HTML5定义了用于操作历史记录的新API,允许您在不重新加载窗口的情况下更改位置.有一篇关于Dive Into HTML5的精彩文章,展示了如何使用历史API在单页面应用中模拟多页面导航.它很容易翻 ...

  3. HTML5的popstate、pushState、replaceState记录(Vue-Router实现)

    HTML5的popstate.pushState.replaceState记录 popstate 示例 hashchange history.pushState() 语法 参数 描述 示例 histo ...

  4. html5 浏览器退回事件,html5的pushstate以及监听浏览器返回事件的实现

    这篇文章主要介绍了html5的pushstate以及监听浏览器返回事件的实现,主要介绍了pushstate的使用,以及监听浏览器的解决等问题,感兴趣的可以一起来了解一下 pushstate与监听浏览器 ...

  5. 小恐龙游戏python_补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~

    原文链接补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~​mp.weixin.qq.com 效果展示 在cmd窗口运行如下命令即可: 模型训练: python TRexRush.py ...

  6. popstate_详解HTML5之pushstate、popstate操作history,无刷新改变当前url

    一.认识window.history window.history表示window对象的历史记录,是由用户主动产生,并且接受javascript脚本控制的全局对象.window对象通过history对 ...

  7. 吃粽子html5游戏,端午先玩个小游戏,再去吃粽子吧~

    原标题:端午先玩个小游戏,再去吃粽子吧- 这个端午节,你过的怎么样? 来和米妹玩个小游戏吧 截屏下方动图 如果截到的画面正好是大湖雪糯 请将截图私信给米妹哟- 我们将在选出3名幸运儿,送上我们精美的礼 ...

  8. popstate_操纵浏览器历史记录--popstate() history.pushState()

    一.历史记录前进与后退 1.后退: window.history.back()--相当于用户在浏览器的工具栏上点击返回按钮: 2.前进: window.history.forward()--相当于用户 ...

  9. html5 3d模型资源,玩转 HTML5 下 WebGL 的 3D 模型交并补

    CSG 构造实体几何这个概念在工业水利水电施工上.游戏上已经有很多人使用了,最简单的实体表示叫作体元,通常是形状简单的物体,如立方体.圆柱体.棱柱.棱锥.球体.圆锥等.根据每个软件包的不同这些体元也有 ...

最新文章

  1. Linux cp命令如何拷贝整个目录下所有文件
  2. 在Windows Server 2008上部署SVN代码管理总结
  3. 网站服务器的解决方案有,Web网站服务器DDOS攻击的解决方案
  4. 20155225 实验三《敏捷开发与XP实践》实验报告
  5. dbda.class.php 下载,DBDA
  6. sizeof 和 strlen
  7. 【OpenCV入门学习笔记2】:Mat对象
  8. SkGradientShader::CreateLinear 的参数。
  9. Android studio中不同颜色代表什么意思
  10. 清华博士告诉你 “0Ω电阻”的系列应用
  11. 分享10个值得关注的C语言开源项目
  12. 【LeetCode 629】K个逆序对数组
  13. 【PyCharm】10个省时间的 PyCharm 技巧
  14. IOS 学习笔记(2) 视图UINavigationController
  15. matlab 相位谱_电气信息类专业课程之matlab系统仿真 第九章 提高仿真能力需要案例(1)...
  16. c#开发之八---mvc
  17. 网购工具软件chrome扩展插件大推荐
  18. lol微信登录服务器,LOL开启微信登录功能测试 绑定微信登陆方法一览
  19. 飞鸽快递系统代码_中通快递港股上市募资约96亿港元,董事长赖梅松认为股票代码2057寓意开启新征程...
  20. 学会对VUE的SEO优化,你的网站总是排在前面

热门文章

  1. Json对象和Json字符串以及js对象(JavaScript对象)的区别
  2. Linux虚拟机连接数据库
  3. 一个麻烦事的解决办法 -- 广州异地补办身份证
  4. 详解高斯混合模型与EM算法
  5. 【IOS初学者】数组与字典
  6. a.b.art One时尚智能腕表:这才是智能手表的正确方向
  7. 技术博客2013年11月份头条记录
  8. 【收藏】它绝对是最适合自学的Python教材!
  9. oracle删除表后又有这个表:BIN$dJ5h8mA4Lr/gQAB/AQB0oA==$0 TABLE 存在
  10. 【转】如何将FLAC格式转为MP3格式