JavaScript で F5 キーを無効化する方法

F5 キーを無効化する

JavaScript で F5 キーを無効化して、再読込をさせないようにします。

いくつか方法があるので、お好みの方法で。

JavaScript で記述する場合

やや古典的な書き方。環境を問わず使える方法です。


window.onload = function () {  
    document.onkeydown = function (e) {  
        return (e.which || e.keyCode) != 116;  
    };  
}

jQuery で記述する場合

Common 等に追加しておくのが一般的でしょうか。


$(function () {  
    $(document).keydown(function (e) {  
        return (e.which || e.keyCode) != 116;  
    });  
});

BODY タグに書いちゃう

こんな方法もあります。ASP.NET の部分ビューのように、レイアウトを切り分けているのであれば、この方法もあり。


<body onkeydown="return (event.keyCode != 116)">

Visual Studio で「 1 つ以上のエラーが発生しました」が出てデバッグできない

1 つ以上のエラーが発生しました

デバッグアダプターを起動できませんでした。追加情報を出力ウィンドウで確認できる場合があります。

……出力ウィンドウで確認できませんでした。
こういう場合、ほとんどの場合、表示されているメッセージは意味がわからない。

ブラウザを変える

例えば、Chrome でデバッグをしていて、このようなエラーが出たとします。
デバッグは停止しているけど、他に開いている Chrome のウィンドウ(タブ)は無いだろうか?

全てのウィンドウを閉じて、深呼吸してから(少し時間をおいて、プロセスが終了するのを待つ)、もう一度デバッグを開始すると、何事もなかったかのようにデバッグできる場合がある。

それでもダメなら、ブラウザを変えてみる。

ツールバーにある「▶」ボタンの右端をクリックすると、Web ブラウザーの変更ができるので、他のブラウザー(Edge とか)に変更するとデバッグできるようになります。

……たぶん。(私はできた)

JavaScript で Alt キーや Ctrl キーと同時に押されたキーを取得する

JS でキーイベント(Ctrl, Shift, Alt)をキャッチする

Web システムにおいて、キーボードによるアクセスキーが要件にあった場合の対応。

キーの同時押し

Ctrl キー, Alt キー, Shidt キー等の押下は、event でキャッチする。
その後、同時に押されたキーを判定する。

なお、やや冗長に見える書き方ではあるが、if 文を & で一行にまとめようとするとうまくいかなかった。

$(function ($) {

    $(window).keydown(function (e) {
        // Alt キーとの組み合わせをキャッチする。
        if (event.altKey) {
            if (e.keyCode == 13) {
                alert("Alt + Enter");
                return false;
            }
        }

        // Ctrl キーとの組み合わせをキャッチする。        
        if (event.ctrlKey) {
            if (e.keyCode == 13) {
                alert("Ctrl + Enter");
                return false;
            }
        }

        // Shift キーとの組み合わせをキャッチする。        
        if (event.shiftKey) {
            if (e.keyCode == 13) {
                alert("Shift + Enter");
                return false;
            }
        }        
    });

});

ブラウザのショートカットキーは無効化できない

なお、上記方法では、ブラウザのショートカットキーは無効化できない。
例えば、誤動作を防ぐ目的で「Ctrl + W (タブを閉じる)を無効化」といったことはできない。

同時押しするボタンのキーコード一覧

キーコードについては、こちらのサイトに詳細な情報がありました。参考までに。

キーコード一覧
https://web-designer.cman.jp/javascript_ref/keyboard/keycode/

C# の input string was not in a correct format エラー

文字列が変換できなかった場合に発生するエラーで、
例えば、string.Format で変換対象となる文字列の中に「{(中かっこ)」等の「意味がある」文字列が混ざっていると、このエラーとなる。

// エラーが発生する
var s = string.Format("{今日の日付:{0}", DateTime.Today.ToString("d"));

文字列を組み合わせてから変換をかける場合などには、入っているデータに注意が必要。

Excel で入力した文字に勝手に取り消し線が入る

……次の行には、取り消し線は要らない。普通の文字を入力するぞ。

なんでやねん。

「データ範囲の形式及び数式を拡張する」を解除

これは、Excel のお節介機能のひとつ。
オプションを開き、[ 詳細設定 ] - [ 編集オプション ] にある、
「データ範囲の形式および数式を拡張する」のチェックを外す。

この機能は、同じ形式(この場合は取り消し線)が 3 行以上続いた際、次のセルにも自動的に同じセルの形式を適用するオプションのようです。

このオプションを解除して、他のセル(取り消し線の書式がないセル)をコピーしてから、もう一度入力してみます。

今度は大丈夫です。

Mac 版 Excel の環境設定

Mac の場合、画面上部にあるメニューの「Excel」をクリックして環境設定を開きます(「command + , (カンマ)」 でも開きます)。

「編集」を開きます。

Mac 版 Excel の環境設定

「編集オプション」にあります。