Autor Zpráva
PetrN (novak@liberouter.or g)
Profil *
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
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
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
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
no jasně, OnBeforeUnload je vlastnost Internet Exploreru. Ale to jsem si myslel, že původní tazatel ví.
Toto téma je uzamčeno. Odpověď nelze zaslat.