Подтвердить что ты не робот

Popstate возвращает event.state undefined

Я изучаю историю в HTML5, в этом примере (откройте консоль браузера JavaScript, чтобы увидеть ошибку) event.state.url возвращает:

Uncaught TypeError: Cannot read property 'url' of undefined

Посмотрите и помогите: http://jsfiddle.net/un4Xk/

4b9b3361

Ответ 1

event - это объект события jQuery, а не DOM.

Чтобы получить доступ к объекту события DOM, используйте event.originalEvent: http://jsfiddle.net/pimvdb/un4Xk/1/.

var state = event.originalEvent.state;

Помните, что состояние определено только в том случае, когда новое состояние имеет данные, поэтому оно недоступно при нажатии и последующем возврате в исходное состояние:

  • начальное состояние
  • ссылка на состояние 1
  • назад в исходное состояние (нет данных)

Однако он доступен при нажатии, нажатии другого времени и последующем возврате:

  • начальное состояние
  • ссылка на состояние 1
  • ссылка на состояние 2
  • кнопка возврата в состояние 1 (доступны данные)