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

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



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

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

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

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

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

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

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

終わりに

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

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

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






JavaScript

Posted by ちこ