シフトが押された場合に入力されたものと比較せずにjavascriptでキャップロックを検出する方法は?

javascript usability
シフトが押された場合に入力されたものと比較せずにjavascriptでキャップロックを検出する方法は?

入力された文字が大文字であるか、はいの場合はShiftキーが押されたかを確認するjQuery one(http://plugins.jquery.com/plugin-tags/caps-lock)など、多くのソリューションがあります。 そうでない場合は、Caps Lockがオンになっています。

これは私が欲しいものではありません。 GMail.comにアクセスして、パスワードフィールドにカーソルを置きます。 Caps Lockを押すとすぐに表示されます。 何かを入力する必要はありません。

これが私が探しているものです。

  0  0


ベストアンサー

押されたキーが `onkeydown`イベントのCaps Lockキーかどうかを確認できます:

element.onkeydown = function () {
    var evt = arguments[0] || window.evt,
        key = evt.which || evt.keyCode;

    if (key == 20) {
        alert("Caps lock pressed");
    }
}

これは、入力にフォーカスを移動するときにユーザーが既にCAPロックを有効にしている場合には役に立たないことに注意してください(それは検出できないと確信しています)。

ただし、コメントで指摘されているように、一部のオペレーティングシステムまたはブラウザでは、パスワードフィールドにフォーカスしているときにCaps Lockがオンになっていると、ネイティブで警告が表示されます。 GMailはWin 7では私には向かないので、JavaScriptで書いたものだとは思いません。

2


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