onpopstate in chrome和firefox

时间:2012-07-28 12:15:33

标签: html5 firefox google-chrome

我使用 pushState onPopState 来创建ajax导航。

但这里有一个小问题。

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

这导致chrome加载内容两次,但firefox工作正常。

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

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

HTML5 onpopstate on page load

2 个答案:

答案 0 :(得分:1)

我解决了这个问题:

window.onpopstate = function(event) 
{
    if (!event.state) return;
    ajaxPage(document.location.href);
};

答案 1 :(得分:0)

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

  • 我们不会在dom准备好之前使用它
  • Chrome的最初onpopstate在
  • 之前被解雇

一般问题是Chrome在这里:

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

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