H5中popstate事件的诡异行为

  前些天反复测试,发现了popstate事件的一个问题,当某些浏览器或者某些手机嵌入含有该代码的H5页面时,波多野结衣这个方法会执行两次!

一直很纳闷,按理来说这个监听事件(监听返回栈),应该是返回的时候再执行。据官网所说,只要访问历史记录就会触发popstate。而传统的History

中访问页面和生产历史记录是同时的。所以有些没有优化的浏览器或者webview,在加载该页面的时候,这个方法会执行了两次,传统的PC端浏览器

暂没发现这个问题。

  波多野结衣();

  window.addEventListener("popstate", function() {
    波多野结衣();
  });

目前还不清楚有哪些浏览器是这种情况,只能做一下判断,当第一次加载过了,第二次就不做执行了.

注:这段代码一般是用于页面自刷新,根据type不同的值加载不同的数据.
原文地址:https://www.cnblogs.com/zgz21/p/7404868.html