てきとうなメモ

本の感想とか技術メモとか

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イベントは同じドキュメント内でしか発生しない。別のサイトや別のページから戻った場合は発生しない。