2017-08-15 history api メモ いろいろ勘違いしていたのでメモ。 履歴は現在の状態を含み、一番上に現在の状態を置く。 ので、新規タブを開いてページをロードすると、window.history.lengthは1になる chromeの場合は新規タブを開いた時点でページがロードされたことになっているようで、そこから別ページをロードするとwindow.history.lengthは2になる。 pushStateは引数の状態を履歴の一番上に追加する。 replaceStateは履歴の一番上(現在の状態)を引数の状態に置き換える。 pushStateとreplaceStateの引き数のtitleはブラウザの履歴の部分に利用されるとは限らない chrome,firefox,IE,Edgeはdocument.titleを書き換えないとダメ。Safariは引数のtitleを利用していた。 popstateイベントは同じドキュメント内でしか発生しない。別のサイトや別のページから戻った場合は発生しない。