ブラウザでページをクローズしたときとリロードしたときで処理を分けたいとき

今回はブラウザでページをクローズしたときとリロードしたときで処理を分けたいときどのようにすれば良いのかについてご紹介いたします。



ブラウザでページをクローズしたときとリロードしたときで処理を分けたいとき

ブラウザでページをクローズしたときとリロードしたときで処理を分けたいとき

JavaScriptを使った処理などで、ブラウザでページをクローズしたとき、またはページをリロードしたときで何か処理を走らせたいことがあると思います。

JSにおいては、beforeunloadを検知すればイベントが発火できますが、これだとページをクローズしたときとリロードしたときで処理を分けることができません。

結論を言うと、localStorageを使いましょう。
下記のstack overflowが参考になると思います。
https://stackoverflow.com/questions/568977/identifying-between-refresh-and-close-browser-actions

上記の回答のソースコードを見てみると、ページを閉じる際にlocalStorageに現在日時を保存し、再度ページを表示させた際にlocalStorageにある日時と開いたときの日時を比べて差が10秒未満であればリロード、localStorageにある日時から10秒以上経っていればページを閉じたと判断しています。

やや無理矢理ですが、上記の方法しかないようです。

終わりに

今回はブラウザでページをクローズしたときとリロードしたときで処理を分けたいときどのようにすれば良いのかについてご紹介いたしました。

最後までお読みいただきありがとうございます。
ブログやTwitterでのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

Youtubeチャンネル開設いたしました。
よろしければチャンネル登録お願いいたします。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






JavaScript

Posted by ちこ