web-dev-qa-db-ja.com

popstateはevent.stateが未定義を返します

HTML5の履歴について学習しています。この例では、(JavaScriptブラウザーコンソールを開いてエラーを確認してください)event.state.url 戻り値:

Uncaught TypeError: Cannot read property 'url' of undefined

見て助けてください: http://jsfiddle.net/un4Xk/

25
Caio Tarifa

eventはjQueryイベントオブジェクトであり、DOMオブジェクトではありません。

DOMイベントオブジェクトにアクセスするには、event.originalEventhttp://jsfiddle.net/pimvdb/un4Xk/1/ を使用します。

var state = event.originalEvent.state;

状態は、新しい状態にデータがある場合にのみ定義されるため、クリックしてから初期状態に戻ると使用できないことに注意してください。

  1. 初期状態
  2. 状態1へのリンク
  3. 初期状態に戻るボタン(データなし)

ただし、クリックして別の時間をクリックしてから戻ると、使用できます。

  1. 初期状態
  2. 状態1へのリンク
  3. 状態2へのリンク
  4. 状態1に戻るボタン(データが利用可能)
46
pimvdb