ブラウザ操作(更新、閉じる、戻る)をトリガーに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系の記事などを書き連ねています

      広告

      [書籍] 世界一楽しい決算書の読み方感想まとめ

        こういう人におすすめ 決算書を読もうとして挫折した人 企業分析したい投資家 会社で経営企画担当、管理職などのポジションの人 概要 著者はTwitterで会計クイズを行なっている 「大手町のランダムウォーカー」さん 。 「日本人全員が財務諸表を読める世界を創る」 を合言葉にして...

      QooQ