Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする

Webページでキーボードによるページのリロードとページの戻る、進むの移動をブロックするコードを紹介します。

キーボードによるページのリロードをブロックする

解説

キーボードでのページのリロードをブロックする方法です。キーボードでは [Ctrl]+[R] キーでページをリロードします。また、[F5]キーでもページをリロードします。 JavaScriptでこの2つのキーの入力をブロックすると、キーボードによるリロードをブロックできます。
Webページで押されたキーを取得する方法はこちらの記事を参照してください。
取得したキーコードを判定して、該当するキーコードの場合に 'return false' を返して処理をブロックします。

コード

下記のHTMLファイルを作成します。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
  <script type="text/javascript">
    document.onkeydown = keydown;

    function keydown(event) {
      if (event.ctrlKey == true) {
        if (event.keyCode == 82) { //"R"
          alert("このページではリロードできません。");
          return false;
        }
      }
      if (event.keyCode == 116) { //F5
        alert("このページではリロードできません。");
        return false;
      }
    }
  </script>
</head>
<body>
  <p>リロードをブロックするデモ</p>
  <textarea cols="64" rows="12"></textarea>
</body>
</html>

表示結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。
Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする:画像1

テキストボックスに文字列を入力します。
Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする:画像2

ページのリロードのショートカットキーである[Ctrl]+[R]キーまたは、[F5]キーを押します。
下図のアラートダイアログが表示され、リロードがブロックされます。
Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする:画像3

補足

keydown 関数を空にして、同じ操作をすると、ページがリロードされ、テキストボックスの内容はクリアされます。

    function keydown(event) {
    }

Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする:画像4

ページの戻る、進むをブロックする

解説

キーボードでのページの戻る、進むをブロックする方法です。キーボードでは [Alt]+[←] キーでページを戻ります。また、[Alt]+[→]キーでページを進みます。 JavaScriptでこの2つのキーの入力をブロックすると、キーボードによるページの戻る、進む操作をブロックできます。

コード

下記のHTMLファイルを作成します。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <script type="text/javascript">
    document.onkeydown = keydown;

    function keydown(event) {
      if (event.altKey == true) {
        if (event.keyCode == 37 || event.keyCode == 39) { //"←" "→"
          alert("このページではページ移動できません。");
          return false;
        }
      }
    }
  </script>
</head>
<body>
  <p>キーボードの戻る、進むをブロックするデモ</p>
  <textarea cols="64" rows="12"></textarea>
</body>
</html>

表示結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。
Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする:画像5

テキストボックスに文字列を入力します。
Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする:画像6

ページを戻る、または進むショートカットキーの[Alt]+[←]キーまたは、[Alt]+[→]キーを押します。
下図のアラートダイアログが表示され、ページのナビゲーションがブロックされます。
Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする:画像7

補足

keydown 関数を空にして、同じ操作をすると、ページのナビゲーションが実行され、テキストボックスの内容はクリアされます。

    function keydown(event) {
    }

Webページでキーボードによるページのリロード、ページの戻る、進むをブロックする:画像8

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2021-06-06
Copyright © 1995–2025 iPentec all rights reserverd.