ブラウザでページをクローズしたときとリロードしたときで処理を分けたいとき
今回はブラウザでページをクローズしたときとリロードしたときで処理を分けたいときどのようにすれば良いのかについてご紹介いたします。
ブラウザでページをクローズしたときとリロードしたときで処理を分けたいとき
JavaScriptを使った処理などで、ブラウザでページをクローズしたとき、またはページをリロードしたときで何か処理を走らせたいことがあると思います。
JSにおいては、beforeunloadを検知すればイベントが発火できますが、これだとページをクローズしたときとリロードしたときで処理を分けることができません。
結論を言うと、localStorageを使いましょう。
下記のstack overflowが参考になると思います。
https://stackoverflow.com/questions/568977/identifying-between-refresh-and-close-browser-actions
上記の回答のソースコードを見てみると、ページを閉じる際にlocalStorageに現在日時を保存し、再度ページを表示させた際にlocalStorageにある日時と開いたときの日時を比べて差が10秒未満であればリロード、localStorageにある日時から10秒以上経っていればページを閉じたと判断しています。
やや無理矢理ですが、上記の方法しかないようです。
終わりに
今回はブラウザでページをクローズしたときとリロードしたときで処理を分けたいときどのようにすれば良いのかについてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません