popstate实现history路由拦截,监听页面返回事件

1、当活动历史记录条目更改时,将触发popstate事件。
如果被激活的历史记录条目是通过对history.pushState()的调用创建的,
或者受到对history.replaceState()的调用的影响,popstate事件的state属性包含历史条目的状态对象的副本。

2、需要注意的是调用history.pushState)或history.replaceState)用来在浏览历史中添加或修改记录。不会触发popstate事件;
只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back))
if window.history && window.history.pushState) {
   window.onpopstate = functionevent) {
      console.log"location: " + document.location + ", state: " + JSON.stringifyevent.state));
      //window.history.go1)
      //window.history.back)
   };

   //window.addEventListener"popstate", functione) {
   //   window.location = 'http://www.baidu.com';
   //}, false);

   !function) {
      var state = {
         title: "title",
         url: "#"
      };
      window.history.pushStatestate, "title", "#");
   });

}

 


Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注