Push/Pop State

空のHistoryスタックでこのページを試すためには、このリンクをクリックして新しいタブでこのページを開始する。

pushStateでバックボタンの履歴を増やすには、ユーザーによるイベント(例:ボタンのクリック)から開始したスレッドでなければならない。"load" eventや、setTimeoutなどで作ったスレッドからpushStateを行っても、バックボタンの履歴は変わらない。

3つダイアログボックスを開けて、3回バックボタンを押せば、3つのダイアログボックスがForwardボタンの履歴にはいる。これを消すことはできない。しかし、この履歴がクリックされた時、 なにも起きないようにすることは可能である。Forwardの履歴がクリックされると、ブラウザはForwardを行った後、popstateハンドラが呼ぶ。ブラウザは、もう既にForwardしているので、ハンドラ内で、history.go(-1)でバックすることで、ブラウザの行動をキャンセルする。