Starší komentáře ke článku: Odstraňte bariéry svého webu - moderní technologie

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Ondrej Ivanic

Datum vložení: 11.6.2002 8:57:20

Preco nestaci len onclick ale je dobre mat aj onkeypress ???
Nezda sa mi ze by bol rozdiel pri" kliku" na link cez klavasnicu alebo mysou. Asi pojdem truchu poskusat

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 11.6.2002 9:10:50

Já jsem to teď zkoušel: Je úplně jedno, jestli kliknu na element myší nebo klávesnicí - onClick událost BERE OBOJE. :)

Souhlasí s tím autor, že onKeyPress není tedy potřeba?

Avatar

Autor komentáře: Ondrej Ivanic

Datum vložení: 11.6.2002 9:24:48

Ja som si to tiez do teraz myslel, ale mozilla ma vyviedla z omylu.

PS. v diskusii je neaky bug:
ked date odpovedat a neikto odpovie skor ako vy tak vasu odpoved zaradi ako ked odpovedate na jeho odpoved

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 12.6.2002 18:25:23

Vy zde ale mluvíte o (dosud) majoritní platformě, tedy zařízení s myší - musíte brát v úvahu alternativní zařízení pro handicapované, navíc v budoucnosti bude stále růst podíl PDA a podobných zařízení..

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 13.6.2002 8:22:34

Tak znovu opakuju. onClick událost je vyvolaná u MSIE (min. verze 5.x - verzi 4.x jsem nezkoušel), Netscape 4.x, Netscape 7.0 SP1, Mozille (min. verze 1.0) i při stisknutí klávesy (tedy mělo by to fungovat stejně i na PDA, mobilech apod.
- kdo to vyzkouší?:-)! Tedy kromě Opery (ani verze 6.03 to nepodporuje), ovšem ta neumí i plno CSS2 vlastností, takže i tato událost bude snad dotažena dokonce.

Apropo, ve článku je sice hezké, že autor uvádí příklad něco jako:
<a href="neco.htm" onClick="funkce(); return false;" onKeyPress="funkce(); return false;">
Jenomže co třeba s častým:
<a href="neco.htm" onClick="return confirm('Chcete pokračovat?');">
Přidám-li i událost onKeyPress, při stisku klávesy a odpovězení "ano" bude dotaz vyvolán ještě jednou (místo aby se přeskočilo na parametr href).
Samozřejmě, jde použít pomocná proměnná, ale na to je potřeba dát celou tuhle věc do funkce... A to neukazuju plno dalších problémů.
Já vím, že podle specifikace W3C (na kterou jsem se koukal) by měly být užity události oboje, ale proč mít takovéto problémy, když všechny prohlížeče (dokonce i Mozilla držící se skoro striktně standardů) to podporuje (onClick i při stisku klávesy) správně - podle mě. Všechny prohlížeče už jsou tvořeny samozřejmě i na podporu ovládání POUZE klávesnicí, a tedy podpora této běžné události jak klávesnicí tak myší je podle mě správná - neboť událost onClick se nejmenuje onMouseClick narozdíl od třeba onMouseOver, a pro uživatele nemá být co rozdíl, jestli klikne myší nebo klávesnicí. W3C se to lehce píše, ale smysl to nemá žádný, mít událost onClick jen na klik myši. Ať se s tím vyrovnají prohlížeče (třeba pro PDA - já stejně věřím, že i tam to funguje)...

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 13.6.2002 19:48:58

Cituji ze specifikace HTML 4.01:

<I>The onclick event occurs when the pointing device button is clicked over an element. This attribute may be used with most elements.</I>

Událost onclick má být tedy vyvolána stisknutím ukazovacího zařízení, ne klávesy - to, že to tak prohlížeče dělají, je již věc druhá.. když už tuhle špatnou interpretaci dělají, měly by alespoň zajistit, aby se funkce nevyvolávala 2×... osobně bych doporučoval si to v tom skriptu ošetřit, ale jen pokud je ten skript nutný pro <B>plnou použitelnost stránky<B> - ten váš příklad, kde má uživatel pouze potvrdit přechod na další stránku, tam můžete v klidu nechat jen onclick.

K tomu onMouseClick - já si myslím, že slovo "click" je asociováno s myší, a proto tam to "mouse" není potřeba - navíc je to hodně používaná událost, takže by to spíš přidělávalo práci :-) (podobný případ je i vlastnost color v CSS, také by se logicky měla nazývat text-color :))

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 13.6.2002 20:22:44

Vždyť jsem psal, že podle W3C je to správně, ale proč to udělali? Vždyť rozlišování mezi onClick a onKeyPress je nesmysl, nebo Vy v tom nějaký smysl vidíte? Stránky vytvářím několik let, specializuju se na JavaScript - samozřejmě včetně <noscript> ;), ale použití tohohle rozlišení nevidím žádné. Akorát s prominutím bordel - mezi W3C patrně nejsou žádní programátoři, jinak by takovou blbost nemohli schválit jako standard...

Apropos, co ty PDA? :) Nemohl byste to vyzkoušet Vy sám (nebo toto vyzkoušení zprostředkovat), jde-li to tam nebo ne? :) Já PDA vyzkoušet nemám bohužel možnost. Dost by mě to zajímalo... Předem díky! :)

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 14.6.2002 7:54:05

P.S. Stejně mi nic jinýho nezbývá, než to u nejdůležitějších onClicků, co se týče funkčnosti stránky, opravit.
Ale už mi W3C leze na nervy - je prst ukazovací zařízení, když už jsme u slovíčkaření? Za chvíli vymyslí u dotykových obrazovek onFingerTouch - ale na to se jim už vykašlu! Není to první ani poslední rozhodnutí W3C, který jenom dělá problémy jak programátorům tak uživatelům stránek :-(

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 16.6.2002 19:07:48

Prst <I>je</I> ukazovací zařízení - právě proto se ta událost nejmenuje onMouseClick ale onClick ;-)

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 16.6.2002 18:58:17

<I>Vždyť rozlišování mezi onClick a onKeyPress je nesmysl, nebo Vy v tom nějaký smysl vidíte</I>

Já v tom význam vidím: Představte si situaci, kdybyste při kliknutí na textové pole formuláře chtěl spustit nějaký doprovodný efekt - pokud byste neměl rozlišené onclick a onkeypress, byla by to katastrofa, protože by se to spouštělo při každém vyplněném písmenu ve formuláři. Prostě kliknutí pomocí „ukazovacího zařízení“ a psaní na klávesnici je podle mě něco jiného, i když uznávám i Váš názor, že to přidělává práci...

Avatar

Autor komentáře: TimJ

Datum vložení: 8.7.2003 20:10:38

</B>No, proto by podle mě měla ještě existovat něco na způsob <B>onEnterPress</B>, nebo ještě líp <B>onSubmitKeyPress</B>, nebo prostě něco takovýho. Protože většina zařízení má jedno standartně používané "tlačítko" (nebo jak to nazvat), které ovládá odkazy, formuláře, atd. U PC jsou dvě, levé/pravé myšítko a Enter, u mobilu je jakési OK Button, u PDA taky, prostě by se to tím vyřešilo ... jenže to by se tím někdo musel zabývat, že...

Avatar

Autor komentáře:

Datum vložení: 18.6.2002 16:21:03

Avatar

Autor komentáře: Ondrej Ivanic

Datum vložení: 11.6.2002 9:18:44

lebo su to dve rozne veci :)

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 11.6.2002 11:04:09

Mně to tedy u Mozilly 1.0 funguje! Stejně tak u MSIE, Netscape4.x, Netscape7.0SP1.

Nefunguje to jen u Opery, ani verze 6.03 :(

Avatar

Autor komentáře: Ondrej Ivanic

Datum vložení: 13.6.2002 14:13:17

onkeypress by som urcite nedaval do linku, lebo ako sa dostanete k dalsiemu odkazu ked nemate mys ale len klavesnicu??
Zvicajne sa na to pouziva klavesa TAB ktora bude odchytena v onkeypress a user pritom vobec nechcel kliknut na odkaz on chcel ist len na dalsi odkaz.

onclick sa vyvola vzdy aj ked uzivatel klikne klavasnicou aj ked klikne mysou

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 13.6.2002 14:33:48

To ne. Událost onKeyPress v odkazu určitě nezachycuje klávesu TAB (nebo jinou, tu v prohlížeči pro najetí na další link) - vyzkoušeno!

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 14.6.2002 10:05:05

Tak oprava: Všechny prohlížeče neberou klávesu TAB jako událost pro onKeyPress, ale Opera, která k přechodu nad elementy používá místo klávesy TAB (která je jen na přechod mezi tlačítky) klávesu E, ano... Takže v onKeyPress události je nejlepší Operu úplně odblokovat (dokud to nebude umět pořádně).

Avatar

Autor komentáře:

Datum vložení: 18.6.2002 16:20:31

Avatar

Autor komentáře:

Datum vložení: 18.6.2002 16:20:46

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 18.6.2002 16:22:30

pokus

Zpět na článek | Úvodní stránka Interval.cz