【问题标题】:popstate returns event.state is undefinedpopstate 返回 event.state 未定义
【发布时间】:2011-12-13 05:48:24
【问题描述】:

我正在学习 HTML5 的历史,在这个例子中(打开 JavaScript 浏览器控制台查看错误)event.state.url 返回:

Uncaught TypeError: Cannot read property 'url' of undefined

寻求帮助:http://jsfiddle.net/un4Xk/

【问题讨论】:

  • 网址不存在了

标签: jquery html history pushstate


【解决方案1】:

event 是 jQuery 事件对象,而不是 DOM 对象。

要访问 DOM 事件对象,请使用 event.originalEvent: http://jsfiddle.net/pimvdb/un4Xk/1/

var state = event.originalEvent.state;

记住,状态只有在新状态有数据时才定义,所以点击后返回初始状态时不可用:

  1. 初始状态
  2. 链接到状态 1
  3. 返回按钮到初始状态(无可用数据)

但是,在单击、再次单击然后返回时可用:

  1. 初始状态
  2. 链接到状态 1
  3. 链接到状态 2
  4. 返回到状态 1 的按钮(数据可用)

【讨论】:

  • @Caio Tarifa:嗯,初始状态是页面加载时的状态,所以你知道它应该将事情恢复到原始状态。例如。在这种情况下,#return 应该被清空:jsfiddle.net/pimvdb/un4Xk/2
  • 你能解释一下这条线的作用吗? var initialPop = !popped && location.href == initialURL;
  • @drozzy:我不确定。这是@Caio Tarifa 在问题中发布的原始代码的一部分。看起来是为了防止在页面最初加载时执行代码,因为在这种情况下也会执行popstatejsfiddle.net/un4Xk/3
  • 不幸的是,所有的小提琴都失去了他们的弦乐:(
  • 更改你的 jsfiddle 链接
猜你喜欢
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
  • 2012-03-25
  • 2016-11-18
  • 2019-12-24
  • 2016-05-15
  • 2017-03-11
  • 2019-07-09
相关资源
最近更新 更多