Отключить обнаружение заглавных букв для программных клавиатур (мобильные браузеры)
Для ввода пароля у меня есть некоторый JavaScript, который проверяет, нажата ли заглушка, чтобы предупредить пользователя. Он использует "стандартный" способ сделать это - глядя на keyboardEvent.keyCode и keyboardEvent.shiftKey (и некоторые другие глупости для древних браузеров).
Проблема в том, что это раздражает мобильных пользователей (по крайней мере, iOS, никаких отчетов от людей с Android), потому что "блокировка заглавными буквами" является обычным способом получения заглавной буквы.
В настоящее время я использую некоторый ужасный пользовательский агент, сниффинг, чтобы отключить это, но я чувствую, что должен быть менее хрупкий способ узнать, что это - мягкая (мобильная) клавиатура, и блокировка заглавных букв для прописных букв - нормальный способ вещей (таким образом, я брось курить об этом!)
1 ответ
Итак, как бы я не был несовершенен, вот что я придумал:
$(document).ready(function() {
function hasTouch() {
try {
document.createEvent("TouchEvent");
} catch (e) {
return false;
}
return true;
}
capsLockQuiet = hasTouch();
...
});