Как Вы говорите, находится ли Caps Lock на использовании JavaScript?

233
задан Peter Mortensen 17 December 2010 в 08:36
поделиться

4 ответа

Найденный этим интересным.... Можно дать ему попытку..

function isCapslock(e){

    e = (e) ? e : window.event;

    var charCode = false;
    if (e.which) {
        charCode = e.which;
    } else if (e.keyCode) {
        charCode = e.keyCode;
    }

    var shifton = false;
    if (e.shiftKey) {
        shifton = e.shiftKey;
    } else if (e.modifiers) {
        shifton = !!(e.modifiers & 4);
    }

    if (charCode >= 97 && charCode <= 122 && shifton) {
        return true;
    }

    if (charCode >= 65 && charCode <= 90 && !shifton) {
        return true;
    }

    return false;

}

Для международных символов, дополнительная проверка может быть добавлена для следующих ключей по мере необходимости. Необходимо получить диапазон кода клавиши для символов, которыми Вы интересуетесь, может быть при помощи массива keymapping, который удержит все допустимые клавиши варианта использования, к которым Вы обращаетесь...

прописной A-Z или 'Г „', 'Г–', 'Гњ', нижний регистр a-Z или 0-9 или 'Г¤', 'Г ¶', 'Гј'

вышеупомянутые ключи является просто демонстрационным представлением.

92
ответ дан rajesh pillai 23 November 2019 в 03:32
поделиться

Можно обнаружить использование Caps Lock, "верхний регистр буквы и никакой сдвиг, нажатый" с помощью получения нажатия клавиши на документе. Но тогда Вы лучше быть уверенным, что никакой другой обработчик нажатий клавиши не выталкивает пузырь события, прежде чем это доберется до обработчика на документе.

document.onkeypress = function ( e ) {
  e = e || window.event;
  var s = String.fromCharCode( e.keyCode || e.which );
  if ( (s.toUpperCase() === s) !== e.shiftKey ) {
    // alert('caps is on')
  }
}

Вы могли захватить событие во время фазы получения в браузерах, которые поддерживают это, но это кажется несколько бессмысленным тому, поскольку это не будет работать над всеми браузерами.

я не могу думать ни о каком другом способе фактического обнаружения состояния Caps Lock. Проверка проста так или иначе и если не обнаруживаемые символы были введены, хорошо... тогда обнаружение не было необходимо.

был статья о 24 путях на этом в прошлом году. Довольно хороший, но испытывает недостаток в поддержке международного символа (использование toUpperCase() для обхождения этого).

24
ответ дан SparK 23 November 2019 в 03:32
поделиться

В jQuery,

$('#example').keypress(function(e) { 
    var s = String.fromCharCode( e.which );
    if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey ) {
        alert('caps is on');
    }
});

Во избежание ошибки, например, с клавишей возврата, требуется s.toLowerCase ()! == s .

130
ответ дан 23 November 2019 в 03:32
поделиться

В jQuery:

$('some_element').keypress(function(e){
       if(e.keyCode == 20){
             //caps lock was pressed
       }
});

Этот плагин jQuery ( код ) реализовывает ту же идею как в ответ Rajesh немного более кратко.

-7
ответ дан 23 November 2019 в 03:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: