Autor | Zpráva | ||
---|---|---|---|
rudla Profil |
#1 · Zasláno: 21. 2. 2011, 14:23:32
Ahoj,
pořeboval bych takovou složitou maličkost. Lze nějak udělat, aby se spustila nějaká funkce ve stránce pomocí zadání určité kombinace kláves? Všiml jsem si, že je něco takového tady v diskusi. Děkuju. |
||
Darker Profil |
#2 · Zasláno: 21. 2. 2011, 15:17:31 · Upravil/a: Darker
Základem je event keydown (nebo keyup).
Pak klávesové zkratky nejsou problém. Zde příklad zkratek s kontrolem: function klik(event){ var unicode=event.keyCode? event.keyCode : event.charCode if(unicode==115&&event.ctrlKey){ akce(); return false; } if(unicode==116&&event.ctrlKey){ akce2(); return false; }; }; document.onkeypress=klik; |
||
rudla Profil |
#3 · Zasláno: 21. 2. 2011, 15:22:14 · Upravil/a: rudla
Darker:
Jdou tam nastavit třeba i jiná tlačítka? Například mezerník [space]? I když, mohl bych si to zkusti, ne? :) Každopádně díky. |
||
rudla Profil |
#4 · Zasláno: 21. 2. 2011, 15:34:06
Nějak mi to nejede, nemusí se něco napsát do body?
|
||
Chamurappi Profil |
#5 · Zasláno: 21. 2. 2011, 15:49:58
Reaguji na Darkera:
Celkem často uvádíš polofunkční skripty. Neměl bys v tom pokračovat. „Základem je event keydown (nebo keyup).“ To je pravda, ale proč ukazuješ příklad s problematičtějším onkeypress ?
„Zde příklad zkratek s kontrolem“ Nefunkční v Internet Exploreru. Reaguji na rudlu: Viz Navigace šipkami na klávesnici. „Například mezerník [space]?“ Ten má keyCode 32. Můžeš si do funkce prozatím hodit alert , který ti vypíše event.keyCode právě stisknuté klávesy, a pak podle zjištěných hodnot uzpůsobit podmínky.
|
||
rudla Profil |
#6 · Zasláno: 21. 2. 2011, 16:03:59
Chamurappi:
V odkazovaném kódu je nastavení na if(target.tagName == "INPUT" || target.tagName == "TEXTAREA") return true; Jde taky nastavit, aby to šlo i na body nebo to už jede? Každopádně, jdu to otestovat. Díky. |
||
Darker Profil |
#7 · Zasláno: 21. 2. 2011, 16:05:20 · Upravil/a: Darker
Chamurappi:
„Celkem často uvádíš polofunkční skripty.“ Dám si na to pozor. rudla: Tady jsem ti našel jednoduchý generátor kódů čísel. http://www.ryancooper.com/resources/keycode.asp POST POSTUM: rudla: Pokud to chceš na body, není třeba uvádět podmínku. Tak chápu tvojí otázku. |
||
Chamurappi Profil |
#8 · Zasláno: 21. 2. 2011, 16:12:08
Reaguji na Darkera:
„Pokud to chceš na body, není třeba uvádět podmínku.“ Není pravda. Reaguji na rudlu: „Jde taky nastavit, aby to šlo i na body nebo to už jede?“ Uvedený řádek říká, že pokud uživatel píše do jednoho ze zmíněných typů elementů, nemá se funkce dále zpracovávat. Tamní dotaz se týkal šipek — asi není žádoucí, aby uživatel mačkající šipky v <input> u vyvolával nějakou další činnost.
|
||
rudla Profil |
#9 · Zasláno: 21. 2. 2011, 16:31:10 · Upravil/a: rudla
Darker:
Za generátor děkuju. Chamurappi: „Není pravda.“ Pokud není, jak to má tedy být? „asi není žádoucí“ Myslím, že v mém případě určitě ne. |
||
rudla Profil |
#10 · Zasláno: 21. 2. 2011, 16:36:39
Chamurappi:
„pokud uživatel píše do jednoho ze zmíněných typů elementů“ Co když mám nastaveno u body id="oblast1" name="INPUT" |
||
Chamurappi Profil |
#11 · Zasláno: 21. 2. 2011, 17:16:13
Reaguji na rudlu:
„Pokud není, jak to má tedy být?“ Tak, jak to je :-) Zachycená událost na document.documentElement se vyvolává při stisknutí klávesy kdekoliv ve stránce a ta podmínka říká „zmačknul-li uživatel klávesu uvnitř elementů se jménem značky INPUT nebo TEXTAREA , nech prohlížeč vykonat výchozí činnost, která by se při zmáčknutí měla stát, a nic dalšího už nedělej“.
|
||
rudla Profil |
#12 · Zasláno: 21. 2. 2011, 17:33:43
Chamurappi
Takže to ani přepisovat nemusím, nic s tím dělat nemusím, ano? |
||
Chamurappi Profil |
#13 · Zasláno: 21. 2. 2011, 18:47:21
Reaguji na rudlu:
Nemusíš. |
||
rudla Profil |
#14 · Zasláno: 22. 2. 2011, 14:13:11
Chamurappi:
Díky za radu. ;) |
||
Časová prodleva: 13 let
|
0