π ΠΡΠΎΠ±Π»Π΅ΠΌΠ°
ΠΡΠ΄Ρ-Ρ
ΡΠΎ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΏΠ°Π΄ΠΊΠΎΠ²ΠΎ Π·Π°Π»ΠΈΡΠΈΡΠΈ Caps Lock ΡΠ²ΡΠΌΠΊΠ½Π΅Π½ΠΈΠΌ Ρ Π½Π΅ ΠΏΠΎΠΌΡΡΠΈΡΠΈ ΡΡΠΎΠ³ΠΎ. Π£ Π·Π²ΠΈΡΠ°ΠΉΠ½ΠΈΡ
ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈΡ
ΠΏΠΎΠ»ΡΡ
ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΡ Π»Π΅Π³ΠΊΠΎ Π±Π°ΡΠ°ΡΡ Π²Π΅Π»ΠΈΠΊΡ Π»ΡΡΠ΅ΡΠΈ, Π°Π»Π΅ Ρ ΠΏΠΎΠ»Ρ ΠΏΠ°ΡΠΎΠ»Ρ (<input type="password">
) ΡΠ΅ Π½Π΅ ΡΠ°ΠΊ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΠ°ΡΠΎΠ»Ρ ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΈΠΌ, ΡΠΎ ΡΠΏΡΠΈΡΠΈΠ½ΡΡ Π½Π΅Π·ΡΡΡΠ½ΠΎΡΡΡ.
ΠΡΠ»ΠΎ Π± ΡΡΠ΄ΠΎΠ²ΠΎ, ΡΠΊΠ±ΠΈ ΡΠΎΠ·ΡΠΎΠ±Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΏΠ΅ΡΠ΅Π΄ΠΆΠ°ΡΠΈ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΡΠ² ΠΏΡΠΎ Π°ΠΊΡΠΈΠ²ΠΎΠ²Π°Π½ΠΈΠΉ Caps Lock. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π³Π»ΡΠ½Π΅ΠΌΠΎ, ΡΠΊ ΡΠ΅ Π·ΡΠΎΠ±ΠΈΡΠΈ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ JavaScript
.
π― ΠΠΈΠ·Π½Π°ΡΠ°ΡΠΌΠΎ Caps Lock Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ getModifierState
ΠΠ»Ρ Π²ΠΈΠ·Π½Π°ΡΠ΅Π½Π½Ρ, ΡΠΈ Caps Lock ΡΠ²ΡΠΌΠΊΠ½Π΅Π½ΠΈΠΉ, ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΡΠΊΠΎΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getModifierState
Π· KeyboardEvent
:
document.querySelector('input[type="password"]').addEventListener('keyup', function (event) {
const capsLockOn = event.getModifierState('CapsLock');
if (capsLockOn) {
alert("β οΈ Π£Π²Π°Π³Π°! Caps Lock ΡΠ²ΡΠΌΠΊΠ½Π΅Π½ΠΈΠΉ.");
}
});
πΉ Π―ΠΊ ΡΠ΅ ΠΏΡΠ°ΡΡΡ?
- ΠΡΠ΄ΡΡΠ΅ΠΆΡΡΠΌΠΎ ΠΏΠΎΠ΄ΡΡ
keyup
Ρ ΠΏΠΎΠ»Ρ ΠΏΠ°ΡΠΎΠ»Ρ. - ΠΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΠΌΠΎ
getModifierState('CapsLock')
, ΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π²ΡΡΠΈΡΠΈ ΡΡΠ°Π½ Caps Lock. - Π―ΠΊΡΠΎ Caps Lock ΡΠ²ΡΠΌΠΊΠ½Π΅Π½ΠΈΠΉ, ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π²ΠΈΠ²Π΅ΡΡΠΈ ΠΏΠΎΠΏΠ΅ΡΠ΅Π΄ΠΆΠ΅Π½Π½Ρ.
ΠΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΠΈ ΠΏΠΎΠ²ΡΠ΄ΠΎΠΌΠ»Π΅Π½Π½Ρ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΡ Ρ Π²ΠΈΠ³Π»ΡΠ΄Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΡ ΠΏΡΠ΄ΠΊΠ°Π·ΠΊΠΈ Π°Π±ΠΎ Π·ΠΌΡΠ½ΡΠ²Π°ΡΠΈ ΡΡΠΈΠ»Ρ ΠΏΠΎΠ»Ρ.
π ΠΠ½ΡΡ ΠΊΠΎΡΠΈΡΠ½Ρ Π·Π½Π°ΡΠ΅Π½Π½Ρ getModifierState
ΠΠ΅ΡΠΎΠ΄ getModifierState
ΠΌΠΎΠΆΠ΅ ΡΠ°ΠΊΠΎΠΆ ΠΏΠ΅ΡΠ΅Π²ΡΡΡΡΠΈ ΡΠ½ΡΡ ΠΊΠ»Π°Π²ΡΡΡ-ΠΌΠΎΠ΄ΠΈΡΡΠΊΠ°ΡΠΎΡΠΈ ΠΊΠ»Π°Π²ΡΠ°ΡΡΡΠΈ:
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;
};
π ΠΠΎΡΠΈΡΠ½Ρ ΠΊΠΎΠΌΠ±ΡΠ½Π°ΡΡΡ:
event.getModifierState('Shift')
β ΡΠΈ Π½Π°ΡΠΈΡΠ½ΡΡΠ° ΠΊΠ»Π°Π²ΡΡΠ°Shift
?event.getModifierState('Control')
β ΡΠΈ Π½Π°ΡΠΈΡΠ½ΡΡΠ°Ctrl
?event.getModifierState('Alt')
β ΡΠΈ Π½Π°ΡΠΈΡΠ½ΡΡΠ°Alt
?event.getModifierState('Meta')
β ΡΠΈ Π½Π°ΡΠΈΡΠ½ΡΡΠ° ΠΊΠ»Π°Π²ΡΡΠ° Windows (Cmd Π½Π° Mac)?event.getModifierState('NumLock')
β ΡΠΈ Π²Π²ΡΠΌΠΊΠ½Π΅Π½ΠΎNum Lock
?
Π¦Ρ ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠΌΠ°Π³Π°ΡΡΡ ΠΏΠΎΠΊΡΠ°ΡΠΈΡΠΈ ΡΠΎΠ±ΠΎΡΡ Π· ΠΊΠ»Π°Π²ΡΠ°ΡΡΡΠ½ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΡΡΠΌΠΈ ΡΠ° ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠΈ Π±ΡΠ»ΡΡ ΡΠ½ΡΡΡΡΠΈΠ²Π½Ρ ΡΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ.
π ΠΠΈΡΠ½ΠΎΠ²ΠΎΠΊ
getModifierState Π΄Π°Ρ Π·ΠΌΠΎΠ³Ρ Π΄ΡΠ·Π½Π°ΡΠΈΡΡ ΠΏΡΠΎ ΡΡΠ°Π½ Caps Lock ΡΠ° ΡΠ½ΡΠΈΡ ΠΊΠ»Π°Π²ΡΡ-ΠΌΠΎΠ΄ΠΈΡΡΠΊΠ°ΡΠΎΡΡΠ² ΠΏΡΠ΄ ΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΉ ΠΊΠ»Π°Π²ΡΠ°ΡΡΡΠΈ. Π¦Π΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΉ ΡΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠΏΡΠ΅Π½Π½Ρ UX, ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎ ΠΏΡΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Ρ ΠΏΠ°ΡΠΎΠ»ΡΠ².
π ΠΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠΉΡΠ΅ ΡΠ΅ΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ²ΠΎΡΡ ΠΏΡΠΎΡΠΊΡΠ°Ρ ΡΠ° ΠΏΠΎΠΊΡΠ°ΡΡΠΉΡΠ΅ Π²Π·Π°ΡΠΌΠΎΠ΄ΡΡ Π· ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ΅ΠΌ!