概要
今更ながら、unloadイベントがGoogle Chromeで
使えなくなる予定だと知りました。
具体的には、2026年4月1日リリース予定のバージョン147で
全てのサイトで完全に使えなくなるようです。
そして早くも、検索結果が上位50サイトでは、
2025年6月18日予定で使えなくなります。
タイムライン
アンロードのサポート終了のタイムライン
具体的な日付
対策方法
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サイトの開発者は、注意した方が良いです。