Autor | Zpráva | ||
---|---|---|---|
xlifer Profil |
Když chci vyvolat událost, tak jaký zápis je správně? S "javascript:" na začatku (1) nebo bez (2) ?
Funguje obojí, ale jak je to vlastně správně netuším. Je mi jasné, že lze odkazat přímo do javascriptu funkci(); , ale takhle mi to přijde pohodlnější, když můžu událost vyvolat ihned v rámci zapisu tagu a nemusím odkazovat na JS kód, který je jinde. 1. <span onClick="javascript:document.form.hodnota.focus();">nastav pole</span> 2. <span onClick="document.form.hodnota.focus();">nastav pole</span> |
||
weroro Profil |
#2 · Zasláno: 29. 4. 2015, 15:12:07
javascript: je protokol podobne ako http: alebo ftp: a používa(l) sa v atribúte href="" značky <a> .
|
||
Str4wberry Profil |
#3 · Zasláno: 29. 4. 2015, 15:15:01
Jenom doplním, že v případě použití
<span> u je nutné přidat atribut tabindex , aby šlo prvek zaměřit z klávesnice.
|
||
_es Profil |
To
javascript: tam nepatrí. Funguje to aj s ním preto, že ide o nevyužité návestie (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label). Patrí to do atribútu href , ako označenie pseudoprotokolu - kódu v JS.
|
||
Chamurappi Profil |
#5 · Zasláno: 29. 4. 2015, 17:17:59
Reaguji na xlifera:
Kdysi dávno se vymyslelo, že World Wide Web stojí na třech pilířích: HTML, HTTP a URL. Vše ostatní je zbytné, nahraditelné, stavebnicové. Stejně jako obrázky můžou být mnoha typů (a žádný není dominantní), i u stylů a skriptů se očekávalo více navzájem nekompatibilních krvežíznivě soupeřících formátů. Dříve, než W3C zkusilo prosadit, že se každý webový formát označí MIME typem (při čemž typ text/javascript se dlouho nikdo neobtěžoval dodefinovat), si prohlížeče našly jinou cestu, jak určit používaný skriptovací jazyk. Elementy <script> mívaly atribut language (místo type ), u atributů se objevoval takovýto prefix (místo hlavičky Content-Script-Type ). V Exploreru existoval na určení skriptovacího jazyka i globální atribut language , ovšem ten nikdy nebyl moc pochopen.
Pokud vím, JavaScript byl vždy a všude jako výchozí, nikdy ho nebylo nutné výslovně deklarovat. Do jisté míry se společně s CSS staly čtvrtým a pátým pilířem, konkurence k nim reálně neexistuje. Dnešní prohlížeče javascript: v atributu události už vůbec neuznávají. Berou ho jako (neškodný) návěští pro skoky. Kdybys měl uvnitř onclick u víc cyklů v sobě, mohl bys ve vnitřním cyklu příkazem break javascript ukončit všechny najednou :-)
Jinými slovy je zcela zbytečné to psát. Před dvaceti lety to byl jen syntaktický cukr, dnes to není vůbec nic. |
||
_es Profil |
#6 · Zasláno: 29. 4. 2015, 17:42:25
Chamurappi:
„Dnešní prohlížeče javascript: v atributu události už vůbec neuznávají...Před dvaceti lety to byl jen syntaktický cukr, dnes to není vůbec nic.“ Myslel som si doteraz, že to tak aj je. No vyskúšal som, že v IE8: <div onclick='vbscript: MsgBox "test"'>pokus<div> <script>MsgBox "test"</script> |
||
Chamurappi Profil |
#7 · Zasláno: 29. 4. 2015, 19:15:34
Reaguji na _es:
Asi jsem měl použít spíš pojem „nové prohlížeče“. Ve starším Exploreru je tuším nějaká primitivní autodetekce jazyka pro první <script> . Teprve někdy ve verzi 10 začala podpora VBScriptu radikálněji odumírat.
Mělo by být možné nainstalovat do Windowsu (a tím pádem i do Exploreru) i nějaký další skriptovací jazyk, vždycky mě zajímalo, jak to funguje, ale nikdy jsem to nevyzkoušel. Pak je otázka, jestli by zafungovalo název: …
|
||
_es Profil |
Chamurappi:
„Ve starším Exploreru je tuším nějaká primitivní autodetekce jazyka pro první <script>“ Vyskúšal som - prvý <script> s JS naruší funkčnosť <script>MsgBox "test"</script> a aj <div onclick='MsgBox "test"'> (aj to môže fungovať). No s vbscript: to v HTML atribúte funguje.
|
||
Časová prodleva: 10 let
|
0