HTML5履歴スペックは風変わりです。
history.pushState()popstateイベントを送出したり、それ自体で新しいページをロードしたりしません。国家を歴史に押し込むことだけが意図されていた。これは、単一ページアプリケーションの「元に戻す」機能です。popstateイベントを手動でディスパッチするか、を使用history.go()して新しい状態に移動する必要があります。アイデアは、ルーターがpopstateイベントをリッスンしてナビゲーションを実行できるというものです。
注意すべき点:
history.pushState()イベントをhistory.replaceState()ディスパッチしないでくださいpopstate。
history.back()、history.forward()、ブラウザの[戻る]ボタンや[進む]ボタンとは、派遣行うpopstateイベントを。
history.go()そして、history.go(0)フルページのリロードを行うと、送出されませんpopstateイベントを。
history.go(-1)(1ページ戻る)およびhistory.go(1)(1ページ進む)ディスパッチpopstateイベントを実行します。
このような履歴APIを使用して、新しい状態をプッシュし、popstateイベントを送出できます。
history.pushState({message:'New State!'}, 'New Title', '/link');
window.dispatchEvent(new PopStateEvent('popstate', {
bubbles: false,
cancelable: false,
state: history.state
}));
次にpopstate、ルーターでイベントをリッスンします。