【问题标题】:Does Firefox handle window.onpopstate differently than Chrome and Safari?Firefox 处理 window.onpopstate 的方式是否与 Chrome 和 Safari 不同?
【发布时间】:2013-05-30 08:08:22
【问题描述】:

我一直在尝试让单页应用程序在 Chrome、Safari 和 Firefox 上运行,但 Firefox 似乎根本没有执行 window.onpopstate。

window.onpopstate = function() {
    fullpath = location.pathname;
    console.log(fullpath);
}

我有 .htaccess 将所有请求路由回 index.html,所以当客户端发出请求时,浏览器将 url 存储为 javascript 变量并通过 index.html 中的 js 传递它

在 Firefox 中运行时,变量不会传递到 index.html 页面。对于如何深入研究这个问题,任何人都有解决方案或任何建议?

【问题讨论】:

  • 什么时候不触发?在页面加载或用户导航时?
  • 页面加载。变量永远不会被加载。
  • 所以在页面加载时使用当前 url 设置变量
  • 这似乎解决了我的问题。谢谢。

标签: javascript html .htaccess html5-history


【解决方案1】:

来自the Firefox popstate documentation

浏览器倾向于在页面加载时以不同的方式处理 popstate 事件。 Chrome 和 Safari 总是在页面加载时发出 popstate 事件,但是 Firefox 没有。

正如 epascarello 在他的评论中所说,在 load 事件中初始化你的变量,一切都应该在 Chrome/Safari 和 Firefox 中运行。

【讨论】:

  • 我猜一个不错的选择是为 IE 设置一个主题标签后备?
  • @Emanegux 如果你有足够多的 IE 用户让它值得你花时间,那么是的。注意IE10 has support.
  • FireFox、IE10 等都表现出符合 HTML5 标准的行为。投票code.google.com/p/chromium/issues/detail?id=63040 以推动 Google 修复 Chrome。
猜你喜欢
  • 1970-01-01
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多