Starší komentáře ke článku: Formulář á la Windows v JavaScriptu

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

Avatar

Autor komentáře: Ondra Kněžour

Datum vložení: 1.11.2002 4:53:08

Často čtu na Intervalu články o oddělení obsahu od kódu, vhodnosti formátování pomocí CSS a naopak nevhodnosti používání tabulek, nutnosti zajistit funkčnost skriptů ve všech používaných prohlížečích atd. a co to tu nevidím? Tabulkový chaos funkční pouze v IE, jehož estetická hodnota je poněkud sporná.

Zamyslel jsem se nad tím, proč se autor nepokusil napsat příklad tak, aby vyhovoval výše zmíněným požadavkům. Jediné, co mě napadlo byla náročnost. To mi připadá jako poněkud nedostatečná omluva, protože jsem totéž funkční v IE6, Mozille a asi i Opeře spáchal s pomocí CSS za necelou hodinu a dokonce to i opravdu vypadá jako dialogy ve Windows, narozdíl od toho, co nám bylo předloženo.

Výsledkem je, že já mám v zásobě celkem ucházející formátování dialogů, pro případ že bych chtěl něco podobného někdy použít a autor má první klasifikaci článku za 4. Od nedostatečné ho uchránilo jenom to, že téma vůbec načal a ukázal tak některým cestu k tvorbě formulářů, která by je možná jinak nenapadla.

Avatar

Autor komentáře: Radek

Datum vložení: 1.11.2002 7:21:55

Kde se mohu podívat na to co jste spáchal?
PS obávám se že musím souhlasit s Vaším názorem...

Avatar

Autor komentáře: Ondra Kněžour

Datum vložení: 2.11.2002 3:05:13

Podívat se můžete na <a href='http://www.weboutsourcing.cz/webform/index.html' target='_blank'>http://www.weboutsourcing.cz/webform/index.html</a> ale nemyslim si, že je to něco hodného vystavování, prostě sem pomocí CSS udělal něco, co se podobá dialogu ve Windows a pak na kliknutí měním zobrazovaní jednotlivých "tabů" a jejich záložek, nic, co by člověk nevymyslel sám :)

Bez nějaké snahy o kompatibilitu to funguje v IE6 a Mozille, skoro jsem se předtím přechválil, v Opeře to vypadá zcela jinak, než byl můj úmysl, sice by to šlo vyplnit, ale myšlenka nedošla svého naplnění. Když už to skoro proti své vůli vystavuju, tak by někdo se zkušenostmi s Operou mohl napsat, proč to nedělá to, co jsem čekal :)

Avatar

Autor komentáře: Bross

Datum vložení: 2.11.2002 11:03:54

Skvele. Tohle je 100x prinosnejsi nez tento clanek. Intervalu jde asi opravdu spis o kvantitu a jeste vic je smutne, ze na tento evidentni faux pas neni zadne vyjadreni jak od autora tak ani od redakce.

Avatar

Autor komentáře: potapnik

Datum vložení: 2.11.2002 18:44:12

Jeste by to chtelo misto textu pouzivat popisky - tag label a bude to dokonale. Mozna i ten Javascript by se dal jeste zjednodusit.

Avatar

Autor komentáře: Ondra Kněžour

Datum vložení: 2.11.2002 20:41:10

Opera popisky neumí, takže bohužel nelze, dalo by se s tím udělat mnohem komfortnější ovládání, ale jednak to málokoho napadne použít, protože je prostě zvyklej kliknout na webu checkbox a ne na jeho popis a druhak by člověk s Operou vůbec netušil, co vyplňuje.

Opera toho obecně dost neumí :(
<a href='http://www.opera.com/docs/specs/' target='_blank'>http://www.opera.com/docs/specs/</a>

JavaScript by šel rozhodně zjednodušit, ale jelikož mě to neživí, tak to nemám moc v paži, chtěl jsem jenom zkusit, jestli to jde.

Avatar

Autor komentáře: Michal Kužela

Datum vložení: 2.11.2002 19:17:07

Moc podrobně jsem nezkoumal váš zdroják, ale problém je javascript. Opera sice javascript umí, ale ne každý holá vykonat.
Máme prezentační systém IPS kde jsem, použil css pro ovládání vzhledu stránek. Vše je tedy zabaleno do div boxů. Nějaký čásek mi ale trvalo, než se mi podařilo napsat css, tak aby vzhled IPS byl stejný ve prohlížečích (IE4 a výš, Opera, Mozzila....). Takže co vám zobrazuje Opera je vpodstatě správně, vhledem k tomu že javascript prostřednistvím odjektového modelu ovládá vlastnosti atributu z-index. To samé platí i o DHTML, které v Opeře také nejede. V každém případě je lépe, když návštěník s Operou uvidí formulář takto rozbalený, než kdyby se nemohl dostat k položkám na dalších záložkách.

Avatar

Autor komentáře: Ondra Kněžour

Datum vložení: 2.11.2002 20:48:09

Problém je v tom, že podpora DOM v Opeře se blíží nule. Opera umí nastavit z-index pouze u prvků s position:absolute, s display neumí pracovat vůbec. Celkem podporuje z celého DOM 8 vlastností a 3 metody, což je na opěvovaný browser trochu málo.

Fakt je ten, že účel je splněn, formulář má uživateli umožnit zaslání informací, ne mu v tom zabránit. Pokud si někdo koupí Ferrari, nesmí se divit, že je všude první, ale může si s sebou vzít jenom kabelku :)
(Opera - The fastest browser on the Earth)

Avatar

Autor komentáře: Roman Pichlik

Datum vložení: 1.11.2002 7:19:40

Muze mi aitor clanku rici kde videl tenhle zapis <I><a href="javascript:SwitchTo(1)"></I> a tenhle <I> <span id="s1" style="position:absolute;;visibility:visible"></I>. To si opravdu neprectete neco co napisete nebo tu nefunguje nejaka redakcni rada, ktera by vas na to upozornila. Proc proc proc!? To uz je uroven takova, ze musi kazdy den spatrit svetlo sveta takovehle obludnosti jinak se to ani nazvat neda. Po serii nekolika poslednich clanku zda se mi, ze se tu line umiracek. Kazdopadne Vam dekuji, jen ste me utvrdil, ze tomuto serveru jiz nejde o kvalitu nybrz o kvantitu a Vam mily kolego preji hodne uspechu

Avatar

Autor komentáře: joky

Datum vložení: 1.11.2002 11:03:20

co vam vadi na <A HREF="javascript:funkce(arg)"> ?

Avatar

Autor komentáře: Roman Pichlík

Datum vložení: 1.11.2002 13:32:56

pokud me pamet neklame tak atribut href u tagu a je urcen pro zapis URL nikoliv pro proprietrni zpusob volani skriptu. Pokud chci tedy zapsat volani skriptu do tagu a zaregistrujimu ovladac udalosti onclick <a href="<some_ url>" onclick="funkce(arg);return false;" />

Avatar

Autor komentáře: joky

Datum vložení: 1.11.2002 17:02:19

no treba kniha JavaScript - kompletni pruvodce rika neco jineho

Avatar

Autor komentáře: potapnik

Datum vložení: 1.11.2002 18:00:16

Ta kniha muze rikat co chce, ale je to proste spatne. Jiank tenhle clanek byl jeden z nejhorsich za posledni rok na Intervalu :-(. Takhle se dnes urcite neprogramuje. Vsechno by slo kompletne ve velmi jednoduchem CSS a relativne jednoduchem DHTML skriptu.

Avatar

Autor komentáře: joky

Datum vložení: 4.11.2002 11:26:47

Jinymi slovy - rikate, ze rozumite JavaScriptu lepe nez David Flanagan??

Avatar

Autor komentáře: Michal Kubeček

Datum vložení: 4.11.2002 12:39:06

Tady se přeci nejedná o porozumění JavaScriptu. Tady jde o to, kdy, k čemu a hlavně jak JavaScript použít. Dokážu si představit, že člověk, který JavaScriptem žije, má na tohle dost zkreslené názory a na existenci lidí bez podpory JavaScriptu nebere dostatečně ohledy.

Avatar

Autor komentáře: Roman Pichlik

Datum vložení: 3.11.2002 13:38:22

myslite JavaScript:The Definitive guide od nakladatelstvi O'Reilly, silne o tom pochybuji, ze by tam stalo neco ve smyslu <a href="javascript:some code"> nebo jsem to aspon nevidel muzete byt konkretnejsi?

Avatar

Autor komentáře: joky

Datum vložení: 4.11.2002 11:22:14

Ano mam na mysli tuto knihu, mam ji tady na stole v jejim 2. ceskem vydani. Tak se budete divit, ale je to tam, a je tomu venovana primo cela kapitola - 12.2.4 JavaScript v adresách URL.



Avatar

Autor komentáře: Roman Pichlik

Datum vložení: 6.11.2002 9:31:09

:-) ano, ale Flanagen nemluvi o tom, ze by se to <B>melo</B> pouzivat nybrz o tom, ze je to <B>mozne</B>, coz jak sam jiste uznate je velky rozdil. Jedinou vyhodu vidim pri pouziti jako bookmarklet

Avatar

Autor komentáře: joky

Datum vložení: 7.11.2002 8:46:51

to si snad delate legraci :-)))

Avatar

Autor komentáře: joky

Datum vložení: 7.11.2002 8:52:57

muzete mi rict kde "Flanagen" ( asi myslite Flanagan) - pise, ze je to <B>mozne</B>, ale ze by se to <B>nemelo</B> pouzivat?

Mam pocit, ze zde krome toho, ze existuji celkem kvalitne zpracovane materialy o JavaSriptu, od opravdovych odborniku, jeste existuji "vykladaci" toho, co je je "spravne" a co neni :-))

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 7.11.2002 20:00:47

Nejde přesi o *vykladače* toho, co je správné. Jde o to, že tvorba webu je multiplatformní disciplína, na které se programování v JavaScriptu podílí možná jedním, dvěma procenty. I ti nejlepší specialisté na *programování v JavaScriptu* tedy nemusí mít vždy pravdu v tom, kdy a jak je vhodné JavaScript *aplikovat*.

a href="javascript:..." je zhlediska *přistupnosti* v drtivé většině případů hrubá chyba a názor nejlepších JavaScriptových programátorů v tom má asi takovou váhu, jako názor nejlepších fotbalistů :-)

Avatar

Autor komentáře: joky

Datum vložení: 8.11.2002 11:05:22

Tak mi prosim vysvetlete, v cem je ta hruba chyba?

V cem je podle vas zasadni rozdil mezi <A HREF="javascript:funkce()"> a mezi kodem jako je <A HREF="#" onclick="funkce()"> ??

A co se tyce dalsi cast vasi reakce - rikate tedy, ze ani ti, kteri JavaScript, a potazmo JScript vytvorili, a vytvareji, vlastne nevi, jak ho spravne pouzivat?
A kdo jsou tedy ti, kteri to vi?

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 9.11.2002 0:55:05

1) Hrubá chyba (z pohledu přístupnosti, jak jsem napsal) je vtom, že značka, jejímž primárním účelem je přechod na jiný dokument, tento účel nesplní, pokud klient nepodporuje JavaScript.

2) Nenapsal jsem že odborníci na JavaScript nevědí, jak ho správně používat. Napsal jsem, že to *nemusí* vědět. Bavíme-li se o přístupnosti, pak ti, kteří to určitě vědí jsou odborníci na přístupnost. Bavíme-li se o tvorbě webu obecně, pak samozřejmě za celkovou kvalitu webu zodpovídá ten, kdo jeho vývoj řídí a ten by to tedy měl vědět, nebo by měl mít alespoň prostředky, jak si správnost jednotlivých dílčích řešení ověřit.

Avatar

Autor komentáře: Roman Pichlík

Datum vložení: 8.11.2002 13:26:43

(sorry. Flanagan samozrejme). Jeste udelam jednu korekturu, pokud si tu kapitolu peclive prectete, zjistite ze vni dava autor navod jak je mozne pouzivat pseudoprotokol javascript:. Pokud a to bohuzel vteto kapitole nenaleznete se zamyslite nad pouzitim pseudoprotokolu javascript: zjistite, ze jeho vyuziti je opravdu jen v bookmarkletech. To ze dvou duvodu pri pouziti pseudoprotokolu jako url v atributu href, snizite pristupnost takovehoto odkazu nebot uzivatle s vypnutym klientskym skriptovanim nebo uzivatele s prohlizecem, ktery tento peudoprotokol nepodporuje maji proste smulu a vezte ze treba takova Mozilla 1.0 nic neprovede nic co je definovano pomoci tohoto pseudoprotokolu. proto je legitimni kricet, ze takove pouziti je nespravne a prosim neozncujte me za jakehosi "vykladace" ja o Vas taky netvrdim, ze jste lamer, kdyz tvrdite, ze zapis href="javascript:some code" je legitimni, protoze proste neni. Kdyz uz tak se proste pouzje jiz 1000x omylany zapis < a href="url" onclick="some code", ktery zajisti to ze pokud ma uzivatel vypnuty JS nebo nebo jeho UA nepodporuje pseudoprotokol javascript: pristupnost tre dane stranky.

Avatar

Autor komentáře: Roman Pichlík

Datum vložení: 8.11.2002 13:29:21

BTW ten druhy duvod , ktery jsem zapomnel dopsat je bezpectnost lepe receno cross-site scripting

Avatar

Autor komentáře: joky

Datum vložení: 8.11.2002 15:51:10

Takze:

1) Mozilla - <A HREF="javascript:alert('ahoj')">ahoj</A> funguje zcela dle ocekavani, zobrazi alert. Dodam pro poradek, testovano v Mozilla 1.0 Release Candidate 2

2) Pokud pouziju pseudoprotokol javascript: v odkazu v kontextu, kdy ma slouzit pouze k vyvolani javascriptove fukce, pak asi uznate, ze me nezajima, ze v pripade toho, ze ma klient vypnuty javascript nezobrazi nejakou jinou stranku. Opakuji, ze je jasne, ze asi nebudete volat javascript:window.location... .To by byl opravdu nesmysl.

3) a vase reakce: "a prosim neozncujte me za jakehosi "vykladace" ja o Vas taky netvrdim, ze jste lamer, kdyz tvrdite, ze zapis href="javascript:some code" je legitimni, protoze proste neni. "
To je myslim zbytecne komentovat, ale budiz... rikate, nic nijak nevykladate, a zaroven o necem tvrdite, ze to spravne neni. Tak nevim.

S pozdravem
Joky

Avatar

Autor komentáře: Roman Pichlík

Datum vložení: 8.11.2002 16:14:47

add 1. ano sypu si popel na hlavu mate pravdu
add2. <I>fukce, pak asi uznate, ze me nezajima, ze v pripade toho, ze ma klient vypnuty javascript nezobrazi nejakou jinou stranku. Opakuji, ze je jasne, ze asi nebudete volat javascript:window.location... .To by byl opravdu nesmysl. </I> pokud Vas to nezajima nemame se o cem bavit.K cemu jsou po tom urceny odkazy k volani skriptovacich funkci nebo slouzi k navigaci(pohybu mezi strankami)? Pokud pouzivate odkazy k navigaci, protoze k nicemu jinemu nejsou urceny, musite mi dat zapravdu, ze pouziti konstrukce javascript: je zcela nepripustne .
add 3. nekalme tuto diskusi osobnimi invektivami

Avatar

Autor komentáře: joky

Datum vložení: 11.11.2002 9:53:38

ad 3) souhlasim

ad 2) vratme se k podstate nasi diskuse - KDO a KDY rekl, ze je pouziti pseudoprotokolu javascript: k ovladani klientskeho javascriptu nepripustne? Opravdu tomu nerozumim, kde se bere vase presvedceni o tom co je a neni pristupne?

Avatar

Autor komentáře: Roman Pichlík

Datum vložení: 11.11.2002 10:20:36

dobra koriguji, "neprispustne" byla ma slova. Receno jinak pouziti pseudoprotokolu javascript: jako url atributu href elementu a, snizuje pristupnost stranek, ktere takovito zapis pouzivaji a to z duvodu( kazdy si je muze dohledat byly tu 1000 x omilany viz. prispevek Marka Prokopa).

Avatar

Autor komentáře: joky

Datum vložení: 11.11.2002 16:47:50

ok, prispevek pana prokopa preci jenom stale vyjadruje neci nazor, takze myslim ze to muzeme uzavrit, protoze reci se vedou, voda tece, a evidentne ani jeden z nas na tuto zalezitost nezmeni nazor.

Avatar

Autor komentáře: Scorpi

Datum vložení: 1.11.2002 18:22:48

pokud v atributu href pouzijes zapis "javascript: neco()", tak se vsichni, kdo maj javascript vypnutej, muzou jit klouzat.
Zjednodusene receno, pokud ma na kliknuti probehnout nejaka javascriptova funkce, pak patri do atributu onclick, nebo se ma registrovat uplne extra (objekt.onclick=ovladac).
Navratova hodnota urcuje, jestli se udalost predava v hierarchii dale (return true), nebo nikoliv (return false). V atributu href by mela byt url, ktera vede k "nahradnimu cili", nebo v nejjednodussim pripade jen #, pokud ten ta funkce je postradatelna, tj. i s vypnutym javascriptem je stranka pouzitelna a obsah dostupny.

Avatar

Autor komentáře: potapnik

Datum vložení: 1.11.2002 20:03:34

Ted mam prispevek lehce mimo, ale vyuzivam toho, ze diskusi sleduji nekteri javascriptove na vyssi urovni nez-li ja. Chtel bzch se zeptat, jak se zapise udalost onclick, odkazu s ID napr. prvek. Do (X)HTML kodu bych to udelal treba nasledovne: [a id="prvek" onclick="funkce(); return false;" href="nahradafunkce.html"]text odkazu[/a]. Jak to ale zapisi ciste v kodove casti Javascriptu? Diky.

Avatar

Autor komentáře: Scorpi

Datum vložení: 1.11.2002 20:35:52

no ja nevim co presne mas na mysli tim "udalost onclick, odkazu s ID"...ale zapis je jednoduchy
element.onclick = funkce
pozor - bez kulatych zavorek!
obecne receno, element je objekt, kteremu registrujes ovladac, napr.
var element = document.getElementById('prvek')
pokud se ptas, jak zjistit odkud bylo kliknuto, tak to se lisi v IE :
function funkce() {
var element = window.event.srcElement
}
a v Mozille :
function funkce(e) {
e.currentTarget
}vice najdes v dokumentaci na MSDN
(<a href='http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/dhtml_reference_entry.asp)' target='_blank'>http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/dhtml_reference_entry.asp)</a>, objekt event
a v Gecko DOM reference
(<a href='http://www.mozilla.org/docs/dom/domref/)' target='_blank'>http://www.mozilla.org/docs/dom/domref/)</a>
DOM Event Reference

Avatar

Autor komentáře: potapnik

Datum vložení: 1.11.2002 22:05:52

Diky. Slo mi o ekvivalentni zapis v JS k onclick="funkce();" v HTML, coz si mi vysvetlil. Prvek ma id, takze getElementById bohate staci.

Avatar

Autor komentáře: joky

Datum vložení: 4.11.2002 11:31:13

To prece zalezi na kontextu pouziti te kotvy, napr. pokud ma slouzit pouze k ovladani - vyvolani nejake javascriptove funkce.

Avatar

Autor komentáře: xxx

Datum vložení: 25.6.2004 10:54:09

</span></span>

Avatar

Autor komentáře: Petr Havlík

Datum vložení: 1.11.2002 8:00:36

Promiňte, ale pokud použijete místo 'document.all.... ' 'document.getElementById(..)' a místo atributu 'name' modernějši 'id', tak to bude fungovat jak v Mozille a Netscape 6+, tak v IE. Snaha je sice dobrá, ale příště bych prosil víc profesionality a nevymlouvání se na jednoduchost.

Avatar

Autor komentáře: Siki

Datum vložení: 1.11.2002 8:26:55

Chtel jsem podotknout to same, dokonce by to pomoci fukce getElementById mohlo za urcitych okolnosti fungovat treba pro IE4. Staci se jen trochu rozhlednout treba po Interavalu :-)

Avatar

Autor komentáře: JfD

Datum vložení: 2.11.2002 16:33:20

Tohle je urcite jeden z nejhorsich clanku na Intervalu za hodne dlouhou dobu. Moc rad bych se zeptal redakce, proc dovoluje publikovani takovych paskvilu. Tenhle clanek by se snad dal srovnat jenom s tou kravinou, kdy se autor Javascriptem snazil menit barvu scrollbaru :-)))

Preju hodne kvalitnich clanku a trochu kompetentnosti redakcni rady...

Avatar

Autor komentáře: Bar

Datum vložení: 4.11.2002 13:13:05

Na url <a href='http://cyberschool.fateback.com/how/tabmenu.html' target='_blank'>http://cyberschool.fateback.com/how/tabmenu.html</a> najdete priklad jak by to slo eventuelne resit.

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