Autor | Zpráva | ||
---|---|---|---|
Michaela Š. Profil |
Dobrý den, můžete mi prosím někdo vysvětlit, proč mi toto nefunguje?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="cz"> <head> <title>My page</title> <meta name="description" content="" /> <meta name="generator" content="Roden Web Editor"/> </head> <body> Klikněte na tlačítko pro vypsání násobilky <br /> <input type="submit" value="Násobilka" onclick="Nasobilka()" /> <script type="text/javascript" > function Nasobilka() { var cislo=window.prompt("Pro jaké číslo chceš vypsat násobilku?") for(i = 1; i < 11; i++) { document.write(i+" x "+cislo+" = "+cislo*i) document.write("<br>") } document.write("Obnovte stránku pro nové zadání") } </script> </body> </html> Moderátor jenikkozak: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na
![]() |
||
_es Profil |
#2 · Zasláno: 3. 6. 2014, 20:09:44
|
||
juriad Profil |
#3 · Zasláno: 3. 6. 2014, 20:13:47
Co ti na tom nefunguje? Nefunguje to obnovení stránky?
To je způsobeno nevhodným zápisem do stránky. Většinou není vhodné používat document.write. Toho nekonečného načítání se můžeš zbavit pomocí zavoláním document.close(); po posledním document.write(...) .
|
||
Michaela Š. Profil |
#4 · Zasláno: 3. 6. 2014, 20:21:53
juriad:
Děkuji, jsem poleno... |
||
_es Profil |
#5 · Zasláno: 3. 6. 2014, 21:39:53
juriad:
„Toho nekonečného načítání se můžeš zbavit pomocí zavoláním document.close(); po posledním document.write(...) .“
Nemôže, „posledné volanie document.write(...) “ vôbec nenastane, respektíve nastane len prvé.
|
||
juriad Profil |
_es:
Nerozumím. První document.write() způsbí, že se zahodí aktuální dokument a otevře pro zápis nový, protože aktuální dokument byl již zavřený. Do toho nového se postupně zapisuje následující sekvencí document.write() a postupně se dokument renderuje. Dokud není zavolán document.close() prohlížeč čeká na další přichozí data, proto se tváří jako nekonečné načítání. Při běžném „provozu“ se při načítání stránky zavírá dokument automaticky koncem proudu dat ze serveru. |
||
_es Profil |
juriad [#6]:
Sčasti máš pravdu, no k „dokumentu“ patria aj elementy script, teda aj tie sú zahodené, mylne som sa domnieval, že hneď, no čo som to testoval v najrozšírenejších prehliadačoch, vyzerá to, že aktuálny bežiaci kód sa ešte dokončí - možno to však pre niektoré prehliadače neplatí. Ak by bolo posledným príkazom funkcie Nasobilka volanie setTimeout , tak vyvolanie časovača po definovanom čase by už nenastalo, aj keď je dokument „otvorený“, lebo vtedy je už element script celý zrušený (doplnenie: v Chrome časovač vyvolaný bude). Volanie document.write pre uzavretý dokument skriptom z toho istého dokumentu nie je dobrý nápad, aj keď v tomto prípade to nejako čiastočne „funguje“. Okrem toho to v rôznych prehliadačoch môže fungovať rôzne.
|
||
Časová prodleva: 11 let
|
0