Autor | Zpráva | ||
---|---|---|---|
PetrN (novak@liberouter.or g) Profil * |
#1 · Zasláno: 8. 11. 2004, 16:31:02
Zdavím,
dělám DHTML stránky a potřebuji provádět kontrolu když uživatel zavírá prohlížeč, zda má uložené změny. Využil jsem na to proměnnou a akce onChange a onSelect, ale nefunguje mi to. Udělal jsem si na to testovací soubor, který přikládám. Pokud se uživatel pokusí zavřít okno prohlížeče či dát reload, je v proměnné víceméně náhodná hodnota (tj. někdy true a někdy false). Nicméně pri odesílání formuláře se to vzhodnotí správně a otravuje to :o( Poradí někdo, co mám špatně? A poradí někdo, jak se zbavím toho, aby se akce nastavená pro onBeforeUnload prováděla při odesílání formuláře? Díky <html> <script> var changed=false; </script> <body onBeforeUnload="alert(changed)"> <form name="test"> <input type="text" onChange="changed=true;"> <input type="text" onChange="changed=true;"> <input type="text" onChange="changed=true;"> <input type="submit"> </form> </body> </html> |
||
Yuhů Profil |
#2 · Zasláno: 9. 11. 2004, 05:04:05
při odesílání formuláře se opouští stránka, takže se provádí událost onBeforeUnload. To je myslím jasné.
Řešení vidím v události onSubmit vázané k formuláři. Ta by mohla prohazovat proměnnou changed. <form onsubmit="changed=false"> Místo alertu bych ale házel confirm. onBeforeUnload="if(changed) return confirm('opustit stránku?')" Alert sám o sobě je myslím uživateli k ničemu. |
||
Honza Hučín Profil |
#3 · Zasláno: 9. 11. 2004, 12:54:06
Tak mně ten kód funguje v IE takto - když něco změním, vrací mi zavření okna i odeslání formuláře true, jinak vrací false.
Ale v Mozille (FB 0.7) se neděje nic, žádný alert. Rozumí Mozilla události OnBeforeUnload? |
||
llook Profil |
#4 · Zasláno: 9. 11. 2004, 14:41:20
Nevím jak Mozilla, ale XHTML 1.0 atribut onbeforeunload nemá a předchozí verze W3C HTML předpokládám také ne.
I kdyby tomu Mozilla rozuměla, pochybuji, že tomu budou rozumět ostatní moderní prohlížeče. Nešlo by použít onunload ?
|
||
Yuhů Profil |
#5 · Zasláno: 9. 11. 2004, 22:38:03
no jasně, OnBeforeUnload je vlastnost Internet Exploreru. Ale to jsem si myslel, že původní tazatel ví.
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0