【JavaScript】ブラウザの戻るボタンを無効化する方法はない!

JavaScript

声を大にして言いたい、
ブラウザの戻るボタンを無効化する方法はないと。
セキュリティの観点から無理みたいだ。

以下のソースを見てもらおう

<!DOCTYPE html>
<html>
<head>
    <title>ブラウザの戻るボタンを無効にする</title>
    <script type="text/javascript">
        // 履歴を追加
        history.pushState(null, null, null);
        // popstateイベントハンドラを設定
        window.addEventListener("popstate", function (event) {
            if (!event.state) {
                // 空の履歴エントリを追加
                history.pushState(null, null, null);
                return;
            }
        });
    </script>
</head>
<body>
    <h1>ブラウザの戻るボタンを無効にする</h1>
    <p>このページを表示中にブラウザの戻るボタンを押しても、戻る動作は無効になります。</p>
</body>
</html>

説明すると、
popstateというブラウザの戻るボタンを押したときに
発火されるイベントがあるのだが、このJavaScriptで戻るボタンを無効化できるのは
2023年11月現在ではFirefoxのみ。Chrome, Edgeでは動作しない。
正確にいうと、Chrome、Edgeでは画面をクリック後にしか戻るボタンイベントの発火をさせることができない。(ユーザに一度画面をクリックさせる仕様にしないといけない)
一昔前のネット上の記事を調べると動いていたようだが、
近年Chromeのセキュリティ事情により難しくなったようだ。
現状動いているFirefoxでもそのうち足並みを揃えてくることだろう。

Firefoxでは完璧に無効化できる

タイトルとURLをコピーしました