Autor Zpráva
smejky
Profil *
Zdravím,
pomocí event.keyCode se dá získat kód stisknuté klávesy. Funguje téměř spolehlivě.
Když však chci napsat písmeno s diakritikou tak, že stisknu nejprve háček/čárku a pak písmeno, tak to nefunguje.
Dá se to nějak obejít?
smejky
Profil *
Omlovám se. Teď jsem zjistil, že to nefunguje pouze v Linuxu. Na Oknech to jde.
venca12
Profil
Nevím, kde je problém. Událost keypressed normálně stisk klávesy háček anebo čárka nevyvolává. Vyvolává jej až stisk následného písmena a výsledný kód tisknuté klávesy je to písmeno s háčkem, anebo čárkou. Tzn. stisk libovolné klávesy(kláves) vyvolá kód:

s - #115
š - #353
ˇ s - #353


Pokud chceš získat nejdříve kód háčku a potom kód písmena, tak se obávám že to v jscriptu nepůjde.

Ověřit si to můžeš tímto krátkým příkladem:
<script type="text/javascript">


function getKeyCharCode(e)
{
var key = window.event ? e.keyCode : e.which; // e.which je pro firefox
var keychar = String.fromCharCode(key);
alert(key);
}

</script>

<form>
<input type="text" onkeypress="getKeyCharCode(event);" />
</form>
venca12
Profil
Kua, teď jsem to odeslal...
peta
Profil *
venca12
e.which nema s FF nic spolecne, to je Netscape Navigator a mozna stara Mozilla
if(!e) var e=window.event; k=e.charCode?e.charCode:e.keyCode?e.keyCode:e.which; //Moz,IE,NN
Chamurappi
Profil
Reaguji na petu:
e.which nema s FF nic spolecne, to je Netscape Navigator a mozna stara Mozilla
Kdes zase vyštrachal tohle své moudro? Klávesnicové události běžně mají vlastnost which i v nových Mozillách.
venca12
Profil
Mám Firefox 1.5.0.6 a script, který jsem uveřejnil v mém předchozím příspěvku jsem na něm testoval. Pokud jsem použil keyCode skript nefungoval, respektive nevracel mi požadované číslo stisknuté klávesy. Musel jsem použít metodu which abych dostal požadovaný výsledek. U internet exploreru 6.0 naopak.

Z toho jsem usoudil, že na FF to bez which fungovat nebude.
peta
Profil *
venca12
Ano, je mozne, ze jsem otocil popisky, kdyz jsem s tim delal posledne experimenty. Sory za myslnou informaci. Tak aspon to, ze pouzivam troschu delsi definici kodu klavesnice.
smejky
Profil *
Děkuji za odpovědi. Ve Win XP to normálně jde (keyCode v IE, which v Firefoxu).
Na Linuxu to ale nefunguje, pokud stisknete háček/čárku/přehlásku a pak písmeno.

Pokud tady někdo máte Linux, můžete to zkusit.
Toto téma je uzamčeno. Odpověď nelze zaslat.