ブラウザバックで元の画面が復元される問題

  • 41
    いいね
  • 0
    コメント

自分用メモです。

戻るボタンが押された際、ページのJavaScriptを途中の状態から実行させない方法

まず、 B.html から「戻る」をしたときに、(s1 ではなく) s3 の状態になってしまうのは、Back Forward Cache というブラウザの機能によるものでした。

任意のページで予め、

window.onunload = function() {};

のように window.onunload に空の関数を代入すると、 Back Forward Cache が機能しなくなるようです。

また、 Back Forward Cache が発生した場合(戻るで s3 に到達した場合)であっても、pageshow イベント( window.onpageshow )が呼ばれるようです。

onunload を書き換える以外にも、 onpageshow を書き換えてそこで処理を行なったり、onpageshow イベントが発火して呼ばれる関数内で event.persisted の値を参照することで Back Forward Cache が利用されているか判定できるようです。