Starší komentáře ke článku: Formulář á la Windows v JavaScriptu
Zpět na článek | Úvodní stránka Interval.cz
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.
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...
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 :)
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.
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.
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.
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.
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)
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
Datum vložení: 1.11.2002 11:03:20
co vam vadi na <A HREF="javascript:funkce(arg)"> ?
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;" />
Datum vložení: 1.11.2002 17:02:19
no treba kniha JavaScript - kompletni pruvodce rika neco jineho
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.
Datum vložení: 4.11.2002 11:26:47
Jinymi slovy - rikate, ze rozumite JavaScriptu lepe nez David Flanagan??
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.
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?
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.
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
Datum vložení: 7.11.2002 8:46:51
to si snad delate legraci :-)))
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 :-))
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ů :-)
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?
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.
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.
Datum vložení: 8.11.2002 13:29:21
BTW ten druhy duvod , ktery jsem zapomnel dopsat je bezpectnost lepe receno cross-site scripting
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
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
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?
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).
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.
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.
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.
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
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.
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.
Datum vložení: 25.6.2004 10:54:09
</span></span>
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.
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 :-)
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...
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.