1

onkeyup や onkeydown 関数のようなイベントを使用しています。printscr その中で、Javascriptを使用して単独で無効にしようとしました。私はそのaltキーASCIIが18でPrintscr44であることをグーグルで調べました。

無効にしようとしたコードは次のとおりです。

document.onkeyup = function(e)
            {
                if (e.which === 44)
                {
                    alert('alt key pressed');
                    return false;
                }

            };
var isAlt = false;
document.onkeydown = function(e)
            {
                if (e.which === 18) {
                    isAlt === true;
                    if (((e.which === 44)) && isAlt === true)
                    {
                        alert('tested printscreen');
                        return false;
                    }
                }
            };

そのキーアップアラートでは機能していますが、false が返されません。また、alt+printscrもアラートを受け取っていません。何をすればよいでしょうか?私が間違えたところはありますか?

4

1 に答える 1

1

イベントの停止については、ブラウザー固有のドキュメントを参照してください。

e.stopPropagation()

また、キーアップでは、テキストボックスにキーリピートからの複数の文字が入力されている場合があります。キーダウンでは、値を保存する必要があります。キーアップでは、44キーを取得したらその値を元に戻します。また、ドキュメントではなくウィンドウにキー ハンドラーを配置する必要があります。

(function() {

var savedValue;

window.onkeyup = function(e) {
    if (e.altKey && e.which === 44) {
        alert('alt key pressed');

        if (undefined !== savedValue) {
            e.target.value = savedValue;
            savedValue = undefined;
        }
        return;
    }
};

window.onkeydown = function(e) {
    if (undefined === savedValue) {
        savedValue = e.target.value;
    }

    if (e.altKey && e.which === 44) {
        alert("tested printscr");
    }
};

})();
于 2013-07-03T12:34:29.037 に答える