pushState和replaceState

HTML5新接口,可以改变网址(存在跨域限制)而不刷新页面,这个强大的特性后来用到了单页面应用如:vue-router,react-router-dom中。
注意:仅改变网址,网页不会真的跳转,也不会获取到新的内容,本质上网页还停留在原页面!

window.history.pushState(data, title, targetURL);
@状态对象:传给目标路由的信息,可为空
@页面标题:目前所有浏览器都不支持,填空字符串即可
@可选url:目标url,不会检查url是否存在,且不能跨域。如不传该项,即给当前url添加data
window.history.replaceState(data, title, targetURL);
@类似于pushState,但是会直接替换掉当前url,而不会在history中留下记录

popstate事件

popstate事件会在点击后退、前进按钮(或调用history.back()history.forward()history.go()方法)时触发。前提是不能真的发生了页面跳转,而是在由history.pushState()或者history.replaceState()形成的历史节点中前进后退
注意:用history.pushState()或者history.replaceState()不会触发popstate事件。

window.onpopstate = function(event) {console.log(event.state);console.log(window.history.state;);
};
@以上两种log效果相同,皆可获取之前在pushState和replaceState中传入的data

作者:李霖弢
链接:https://www.jianshu.com/p/808292c42cda
来源:简书

history的pushState和replaceState相关推荐

  1. 无刷新跳转—关于history中pushState和replaceState方法详解

    〝 古人学问遗无力,少壮功夫老始成 〞 **关于history中pushState和replaceState方法详解,**常码字不易,出精品更难,没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫 ...

  2. js:如何监听history的pushState方法和replaceState方法。(高阶函数封装+自定义事件)

    出现原因: 想要监听路由变化就需要监听history的pushState和replaceState事件,但是原生并没有支持,此时,我们就得自己添加事件监听. 解决方法: 高阶函数封装自定义事件: co ...

  3. HTML5 history新特性pushState、replaceState,popstate

    http://blog.csdn.net/tianyitianyi1/article/details/7426606 https://developer.mozilla.org/zh-CN/docs/ ...

  4. History 对象的pushState()和replaceState()

    今天在看vue-router的时候发现,vue-router源码用到了history.pushState()和history.replaceState(),故,仔细看一下. 一. 概述 window. ...

  5. PJAX初体验(主要是利用HTML5 新增API pushState和replaceState+AJAX)

    说在前面 什么是PJAX呢? 站在应用角度的就是既实现了页面无刷新的效果,同时也产生了浏览器的前进和后退,而且url也会变化. 也不是什么新鲜技术,主要是AJAX+html5 pushState和re ...

  6. popstate、pushState、replaceState操作浏览器历史记录

    pushState和replaceState都属于history的操作方法 一.pushState方法 向浏览器的历史记录中新增一条记录 使用:history.pushState(state,titl ...

  7. H5路由的pushState(),replaceState()和popstate()用法

    History路由的pushState,replaceState和popstate的区别 ​ HTML5中引入了history.pushState().history.replaceState().p ...

  8. (转)H5的pushState与replaceState的用法

    一.简介 HTML5引入了 history.pushState() 和 history.replaceState() 方法,它们分别可以添加和修改历史记录条目.这些方法通常与window.onpops ...

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

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

最新文章

  1. 如何控制在一个软件中特殊的字符比如#都显示为红色呢?该字符是作为标签中的内容出现的,可能出现在JLABEL,JCheckBox,JCombox的标签中的,
  2. 在AI Studio上部署外部可以直接调用的云端服务
  3. 考研英语二大纲22年考研
  4. 物联网技术在智慧消防中的应用
  5. emacs 入门教程,菜单汉化,配置文件等杂乱文章
  6. uuid生成_php如何生成 uuid(总结)
  7. svg mysql_SVG 实例
  8. python松天笔记200304
  9. SQLSERVER到底能识别多少个逻辑CPU?
  10. python list拆分_python里如何把一个list分成两个
  11. html中怎么写行内样式,css行内样式是什么?
  12. H3C-H3CNE 华三网络工程师从入门到精通 自学视频课程[肖哥]-肖宗鹏-专题视频课程...
  13. 分布式系统之paxos算法
  14. 电线 电流 和 断路器选择
  15. 数据可视化——tableau 数据报表样例(报表模板)
  16. 自制网站服务器主机,自制服务器主机迷你
  17. 男人成为富翁必备五大特质
  18. C++趣味编程——身高预测。
  19. I Incoming Asteroids(优先队列)
  20. 网页游戏运营模式研究

热门文章

  1. 测试工程师职业发展漫谈【乐搏TestPRO】
  2. vim的左右方向键实现换行
  3. 鸿蒙系统上市时间未定,为啥华为会说鸿蒙上市时间未定,并表示很支持安卓,原因很简单...
  4. GitHub 项目推荐:俄罗斯小游戏、Markdown 幻灯片、头像生成器、Logo 制作工具、坦克大战...
  5. Word365英文版,从当前页开始插入页码
  6. P2797 Facer的魔法(数学三分)
  7. 你应当如何学习C++
  8. 【独立版】智慧城市同城V4_2.1.1全开源全插件+VUE前端,修复平台装修公告组件风格二和风格三无法自动滚动的问题
  9. 数据分析手册-Numpy(7)--花哨的索引
  10. 曼哈顿距离和切比雪夫距离转换