ブラウザ操作(更新、閉じる、戻る)をトリガーにjavascript処理を実行するには

2020年8月21日金曜日

javascript

t f B! P L

概要

ブラウザの更新ボタン、戻るボタン、閉じる(×)ボタンをトリガーにそれぞれ処理を実行したい

更新ボタン

捕捉可能なイベント

  • beforeunload
  • unload

    javascript

        window.addEventListener('beforeunload', (event) => {
          // 処理を書く
        })
      

    注意点

    beforeunload、unloadはあくまでページのアンロード時に発火するイベント。ブラウザのどのボタン(更新なのか閉じるなのか)を押して発火したかまではわからない

    戻るボタン

    捕捉可能なイベント

    • popstate

      javascript

       
          window.addEventListener('popstate', (event) => {
            // 処理を書く
          })
        

      注意点

      chromeではセキュリティの観点から、popstateイベントは発火しないようになっている。正確にはユーザが能動的にアクション(ボタン操作など)を起こすと発火する。javascriptでclickイベントを発火させてもpopstateは発火しない

      閉じるボタン

      更新ボタンと同じ内容であるため割愛

      まとめ

      更新ボタン、閉じるボタンを捕捉できるイベントは同一であるためどちらが押されたか判別はできない。戻るボタンはユーザがクリックなど何らかの操作をすればイベントが発火する。

      傾向として最新の各ブラウザではブラウザ操作の悪用を防ぐためにクライアント側から制御できないようになりつつある

      自己紹介

      Webエンジニアをやっています。日々思ったことや、読書レビュー、IT系の記事などを書き連ねています

      広告

      [書籍] ティムクック アップルをさらなる高みへと押し上げた天才 感想まとめ

         こういう人におすすめ ティムクックのことを知らないという人 アップル、ジョブズのファン 概要 2011年 ティムクック がAppleのCEOを引き継ぎました。 クック の知名度は低く、批評家たちは ジョブズ なしではAppleは終わりを迎えるだろうと危惧していました。 しか...

      QooQ