1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

さよなら。unloadイベント

Last updated at Posted at 2025-04-05

概要

今更ながら、unloadイベントがGoogle Chromeで
使えなくなる予定だと知りました。
具体的には、2026年4月1日リリース予定のバージョン147で
全てのサイトで完全に使えなくなるようです。
そして早くも、検索結果が上位50サイトでは、
2025年6月18日予定で使えなくなります。

タイムライン

アンロードのサポート終了のタイムライン

image.png

具体的な日付

image.png
image.png

対策方法

unload イベントがある状態

window.addEventListener('unload', () => {
    // 何らかの処理
});

pagehide イベントを使って書き換えた状態

window.addEventListener('pagehide', (event) => {
    /* event.persistedは、ユーザーが別のページに移動した際、
     * 画面を完全に閉じたのか / 背面化され非表示化されただけなのか
     * を判別できます。
     * true:  非表示化
     * false: 閉じられた
     */
    if (!event.persisted) {
        // 画面が完全に閉じられた場合のみ、何らかの処理を行う
    }
});

Internet Explorer 10以前をサポートする場合

Googleのおすすめは、こちらの方法のようです。
補足するとInternet Explorer 8以前には、addEventListenerが無いため、
Internet Explorer 9/10をサポートするための方法です。

すべての最新ブラウザでは、unload イベントではなく、pagehide イベントを使用して、ページのアンロード(終了状態)の可能性を常に検出することをおすすめします。Internet Explorer バージョン 10 以前をサポートする必要がある場合は、pagehide イベントを検出し、ブラウザが pagehide をサポートしていない場合にのみ unload を使用する必要があります

const terminationEvent = 'onpagehide' in self ? 'pagehide' : 'unload';

window.addEventListener(terminationEvent, (event) => {
    // 何らかの処理
});

まとめ

何だかんだでunloadイベントは、重宝されているはずなので
Webサイトの開発者は、注意した方が良いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?