使用 JavaScript 检测大写锁定键(Detect Caps Lock with JavaScript)(转)

原文地址:Detect Caps Lock with JavaScript - 使用 JavaScript 检测大写锁定

By David Walsh on February 6, 2024
作者:大卫·沃尔什,2024 年 2 月 6 日

Anyone is capable of having their caps lock key on at any given time without realizing so. Users can easily spot unwanted caps lock when typing in most inputs, but when using a password input, the problem isn't so obvious. That leads to the user's password being incorrect, which is an annoyance. Ideally developers could let the user know their caps lock key is activated.

任何人都可以在任何给定时间打开大写锁定键,而自己却没有意识到。用户在输入大多数内容时可以轻松发现不需要的大写锁定,但在使用 password input 时,问题并不那么明显。这会导致用户的密码不正确,这很令人烦恼。理想情况下,开发人员可以让用户知道他们的大写锁定键已激活。


To detect if a user has their keyboard's caps lock turn on, we'll employ KeyboardEvent's getModifierState method:

要检测用户是否打开了键盘的大写锁定,我们将使用 KeyboardEventgetModifierState 方法:

document.querySelector('input[type=password]').addEventListener('keyup', function (keyboardEvent) {
    const capsLockOn = keyboardEvent.getModifierState('CapsLock');
    if (capsLockOn) {
        // Warn the user that their caps lock is on?
    }
});

I'd never seen `getModifierState` used before, so I explored the [W3C documentation](https://w3c.github.io/uievents/#event-modifier-initializers) to discover other useful values:

我以前从未见过使用 getModifierState ,因此我探索了 W3C 文档以发现其他有用的值:

dictionary EventModifierInit : UIEventInit {
  boolean ctrlKey = false;
  boolean shiftKey = false;
  boolean altKey = false;
  boolean metaKey = false;

  boolean modifierAltGraph = false;
  boolean modifierCapsLock = false;
  boolean modifierFn = false;
  boolean modifierFnLock = false;
  boolean modifierHyper = false;
  boolean modifierNumLock = false;
  boolean modifierScrollLock = false;
  boolean modifierSuper = false;
  boolean modifierSymbol = false;
  boolean modifierSymbolLock = false;
};

getModifierState provides a wealth of insight as to the user's keyboard during key-centric events. I wish I had known about getModifier earlier in my career!

getModifierState 在以按键为中心的事件期间提供有关用户键盘的丰富见解。我希望我在职业生涯的早期就知道 getModifier

posted @   未来的羁绊  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示