55
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2012-12-26

自分用メモです。

戻るボタンが押された際、ページの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 が利用されているか判定できるようです。

55
48
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?