html5 popstate事件无法在chrome上触发,即

时间:2015-07-23 05:14:57

标签: javascript html5 google-chrome firefox browser-history

我在这些浏览器中测试:

  • Chrome 43.0.2357.134 m
  • Firefox 39.0
  • IE 11

我添加了像这样的事件监听器

window.addEventListener("popstate", callback);

并编码以改变这样的状态

history.pushState(param, "#")

它在同一个url页面中工作,但在从另一个url页面导航回来之后,没有调用popstate监听器(但它正在使用firefox)。

我不知道该怎么办。有解决方案???

1 个答案:

答案 0 :(得分:2)

您需要在初始页面加载时手动替换状态。 以下内容应该有效。

var firstState = { // your initial state
}

function initState() { 
    history.replaceState(firstState);
}

if (document.readyState === 'complete') initState();
else window.onload = initState;