2

我使用pushStateonPopState来创建 ajax 导航。

但是这里有一个小问题。

在第一次访问页面或页面刷新时,chrome 会触发 onPopState 事件,但 firefox 不会。

这会导致 chrome 加载内容两次,但 Firefox 运行良好。

我不知道哪个工作正确,我该如何解决?

似乎这种行为在旧版本中是相反的:))

页面加载时的 HTML5 onpopstate

4

2 回答 2

1

我解决了这个问题:

window.onpopstate = function(event) 
{
    if (!event.state) return;
    ajaxPage(document.location.href);
};
于 2012-07-28T12:38:05.453 回答
0

这在我早期的 Safari 版本中不起作用。我们可以使用 domReady 监听器实现我们自己的 window.onpopstate,如果

  • 在 dom 准备好之前我们不会使用它
  • Chrome 的初始 onpopstate 之前被触发

一般问题是Chrome:

当前的 HTML5 规范说在初始页面加载时永远不应该触发“popstate”。Chrome 和大多数 Safari 版本不遵循这一点。Chrome 团队应注意 - 请“star”

http://code.google.com/p/chromium/issues/detail?id=63040

于 2014-03-30T09:02:12.703 回答