Autor Zpráva
Alastor Kopál
Profil *
dobrý den
zkoušel jsem zkloubit plivnutí hlášky a načasování ale nešlo mi to po 5 sekundách se mi hláška nezobrazila jak bych měl script napsat tak aby fungoval ?
DJ Miky
Profil
jak bych měl script napsat tak aby fungoval ?

Nejlépe správně. Pošli sem ten tvůj nefunkční kód. Jinak načasování můžeš provádět pomocí window.setTimeout(), popř. setInterval().
Alastor Kopál
Profil *
<script>
setTimeout("alert("To ses ale lekl!")12000);
</script>
Chamurappi
Profil
Reaguji na Alastora Kopála:
Prohlížeč se lekne lichého počtu uvozovek. Ty bys na jeho místě takový zápis pochopil?
Viz časování a textové proměnné na JPW.
Alastor Kopál
Profil *
vždyť to má 4 uvozovky
Mistr
Profil
Alastor Kopál
vždyť to má 4 uvozovky
Čtyři? Kde jsou?
Chamurappi
Profil
Reaguji na Alastora Kopála:
Buď neumíš počítat, nebo si pleteš uvozovky se závorkami.
Měsíček
Profil
Reaguji na Chamurappiho a na Mistra:

Tam je chyb více:

1.) Chybí čárka ("To ses, ale lekl!"), ...
2.) Kdyby dodělal ještě jedny uvozovky stejně mu to nepůjde.
3.) Čtyřuvozovková konvence - IE to nepřekousne.
4.) Menší chyba (neovlivňuje funkčnost) -> atribut type.

Takže by to měl mít takhle:
<script type="text/javascript">
  setTimeout("alert('To ses, ale lekl!')",12000);
</script>
Chamurappi
Profil
Reaguji na Měsíčka:
Nechtěl jsem mu naservírovat funkční řešení na zlatém podnosu.

Chybí čárka ("To ses, ale lekl!"),
Tobě přebývá před „ale“ :-)

Čtyřuvozovková konvence - IE to nepřekousne
Tomu nerozumím. Jaká konvence? Jaké kousání?

Menší chyba (neovlivňuje funkčnost) -> atribut type
Irelevantní přežitek, JS je výchozí jazyk.

Já bych to napsal raději takhle:
<script>
  setTimeout(function()
  {
    alert("To ses ale lekl!");
  }, 12000);
</script>
Měsíček
Profil
Reaguji na Chamurappiho:

"Tomu nerozumím. Jaká konvence? Jaké kousání? "

Zkusím názorně :-)
<script type="text/javascript">
  setTimeout("alert("To ses, ale lekl!")",12000);
</script>
IE se na vykonání vykašle, budou mu vadit přebytečné uvozovky - to by mohl být důsledek této tvé dobře myšlené věty: "Prohlížeč se lekne lichého počtu uvozovek."

"Irelevantní přežitek, JS je výchozí jazyk."

Ano, ale to nic nemění na tom, že neuvedení atributu type je víceméně chyba :)

Jinak jaké jsou výhody tebou zmiňované konstrukce, už jsem si párkrát všiml, že to píšeš tímhle stylem, ale žádná výhoda mě nenapadá :(
Bubák
Profil
3.) Čtyřuvozovková konvence - IE to nepřekousne.
Existuje prohlížeč, který výše uvedenou názornou zkoušku "překousne"?
Měsíček
Profil
"Existuje prohlížeč, který výše uvedenou názornou zkoušku "překousne"?"

Neměl by ;-)
Chamurappi
Profil
Reaguji na Měsíčka:
IE se na vykonání vykašle, budou mu vadit přebytečné uvozovky
Na to se vykašlou všechny prohlížeče. Další krok po doplnění uvozovek by byl escapování, předřadit těm vnitřním uvozovkám zpětná lomítka. Je pravda, že lichého počtu uvozovek jsem se leknul spíš já než prohlížeč. Styděl jsem se k tomu přiznat, teď už si uvědomuji, jak pošetilé a zbabělé to ode mě bylo.

neuvedení atributu type je víceméně chyba :)
Jen podle W3C. Budoucí verze HTML povinnost typu ruší.

že to píšeš tímhle stylem, ale žádná výhoda mě nenapadá :(
Na toto téma se nedávno rozpovídal ah01. Shrnu-li to:
1) Je-li v prvním argumentu funkce, je vyhodnocována v kontextu, v jakém je zavolán setTimeout. Může přistupovat k lokálním proměnným nebo k referencím objektů, které do řetězce nejdou rozumně narvat. U tvého zápisu s řetězcem se alert(…) vykonává v globálním kontextu.
2) Prohlížeč u mého kódu nemusí po dvanácti sekundách rozebírat nový javascriptový blok. Zavolá funkci, kterou už má v paměti předžvýkanou.
3) Zpracovávání kusu řetězce, jako by to byl skript, je považováno za nevhodnou praktiku. Říká se „eval is evil“ a tvůj zápis setTimeoutu se chová jako eval. Musíš se patlat s uvozovkami, opatrně escapovat atd.
Měsíček
Profil
Reaguji na Chamurappiho:

"Na to se vykašlou všechny prohlížeče."

Taky si myslím, nevím proč jsem byl tak skromný a napsal zrovna jen jeden prohlížeč :-)

Jinak díky za vysvětlení tvého zápisu, poučím se.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: