webForumDet fria alternativet

onUnload confirm

4 svar · 255 visningar · startad av pettsson

pettssonMedlem sedan jan. 2002777 inlägg
#1

Jag har en confirm i min onUnload på formulärsidor för att undvika att man glömmer att spara innan man går vidare. Men det funkar inte, jag har

<body onUnload="return confirm('Lämna?');">

En google-träff laddade om sidan om man tryckte på cancel, men det kommer ju att ladda om formuläret :l Tips?

GuffaMedlem sedan juni 2004533 inlägg
#2

Du kan inte stoppa eventet onunload.

Tänk bara hur det skulle missbrukas. Du skulle få upp en massa fönster med reklam som har onunload="return false", så skulle det inte gå att stänga dem...

Ifall du vill hindra användaren att byta sida så måste du stoppa det tidigare, till exempel med onclick på en länk.

pettssonMedlem sedan jan. 2002777 inlägg
#3

Hm... Det har du ju förstås rätt i. Då får man alltså säga till användarna att om de trycker backspace så får de skylla sig själva

Web-TorMedlem sedan nov. 200011 794 inlägg
#4

Du kan ju alltid spara informationen innan användaren lämnar sidan. Här är lite fulkod:

<script>
function q(){
	var a=confirm("Vill du spara ändringarna innan du lämnar sidan?");
	if(a){
		f.submit();
		alert('Informationen sparas')
	}
}
</script>

<body onunload="q()">
	<form id="f"></form>
	<a href="sidan2.html">Gå till en anna sida</a>
</body>

Det är inte någon 100%-ig lösning men den funkar bra så länge användaren inte stänger fönstret.

GuffaMedlem sedan juni 2004533 inlägg
#5

För att posta formuläret så måste det ju finnas en sida att posta det till. Ifall fönstret håller på att stängas så fungerar det ju inte att posta formuläret till samma fönster.

Testa att öppna ett nytt fönster och posta formuläret dit. Sidan som tar emot formuläret kan ju stänga fönstret sedan.

window.open('','kaffesump','width=100,height=100');
document.f.target='kaffesump';
document.f.submit();
126 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
123 ms — hämta tråd, inlägg och bilagor (db)