【Next.js】ページ離脱時に確認ポップアップを表示してみる
Next.jsでページ離脱時に下のようなポップアップを出してみます。

ターゲット
ターゲットとするページ離脱は下記。
- ブラウザバック
- リロード
- URL直打ちによる遷移
- ブックマークしているURLへの遷移
- タブ閉じ
- ウィンドウ閉じ
コード
"use client";
import { useEffect } from "react";
export default function Page() {
useEffect(() => {
// イベント登録関数
const register = () => {
// ページ離脱時のイベント登録関数
const handleBeforeUnload = (e: BeforeUnloadEvent) => {
e.preventDefault();
e.returnValue = "";
};
// イベント登録
window.addEventListener("beforeunload", handleBeforeUnload);
};
// イベント登録
register();
// これがないと2回目以降のアクセス時、ブラウザバックでポップアップが出ない
window.addEventListener("pageshow", register);
// イベント登録解除
return () => {
window.onbeforeunload = null;
};
}, []);
return <div>離脱してみよう</div>;
}以上になります。
お読み頂き、ありがとうございました。

