Zkontrolovat, zda je klíč dole?

Existuje způsob, jak zjistit, zda je klíč aktuálně nefunkční v JavaScriptu?

Vím o události „keydown“, ale to není to, co potřebuji. Chvíli PO stisku klávesy chci být schopen zjistit, zda je stále stisknutá.

P. S. Největší problém se zdá být v tom, že po nějaké době se klíč začne opakovat a spouští události keydown a keyup jako ďábel. Doufejme, že existuje pouze jednoduchá funkce isKeyDown(key), ale pokud ne, bude třeba tento problém překonat / obejít.

Odpověď

Existuje způsob, jak zjistit, zda je klíč aktuálně nefunkční v JavaScriptu?

Ani náhodou. Jedinou možností je sledování každého keyup a keydown a zapamatování.

po nějaké době se klíč začne opakovat a spustí události spouštění a přikládání kláves jako ďábel.

nemělo by. Určitě dostanete keypress opakování a v mnoha prohlížečích se také zobrazí keydown , ale pokud keyup opakuje, je to chyba.

Bohužel to není úplně neslýchaná chyba:na Linuxu, Chromiu a Firefoxu (když je spuštěn pod GTK+, což je v populárních distribucích, jako je Ubuntu) oba generují opakující se sekvence zvednutí-stisknutí-klávesy pro podržené klávesy, které nelze rozeznat od toho, kdy někdo zatlouká klíč opravdu rychle.