次のコードは、'1' のアラートを発生させるはずですが、代わりに何もしません。
window.onpopstate = function(event) { alert(event.state.a) }
history.pushState({a: 1})
history.back()
フィドル: http://jsfiddle.net/WNurW/2/
何か案は?
次のコードは、'1' のアラートを発生させるはずですが、代わりに何もしません。
window.onpopstate = function(event) { alert(event.state.a) }
history.pushState({a: 1})
history.back()
フィドル: http://jsfiddle.net/WNurW/2/
何か案は?
pushstate コマンドは、現在どのページにいるかを通知するため、コードは popstate を引き起こしません。
window.onpopstate = function(event) { alert(event.state.a) }
history.pushState({a: 1});
history.pushState({a: 2});
history.back()
上記のコードは機能します。
フィドルはこちら: http://jsfiddle.net/WNurW/8/
上の図でわかるように:
(1)ここでページまたはフィドルを入力した後、履歴チェーンに新しいリンクを追加する pushState を実行します。
(2)状態をプッシュすると、履歴にもう 1 回戻るクリックが追加されますが、「履歴」の現在の場所も新しい状態に移動します。したがって、戻っても、取得していると思われる履歴状態は得られず、前の状態が得られます。
(3)手順 (2) で作成した状態に戻るには、「新しい」ページに移動するか、別の履歴状態をプッシュする必要があります。