JavaScript User warnen, wenn er beim Upload die Seite verlässt, erscheint direkt bei onclick()

raven16

Lieutenant
Registriert
Nov. 2008
Beiträge
580
Hallo,

ich habe ein kleines Problem mit JavaScript.
Ich möchte den User warnen, wenn er, nachdem er auf Upload gedrückt hat, die Seite verlassen möchte.

Code:
function showLoading(){
	$("#btn-upload").prop("disabled", true); // deaktiviert den Upload-Button
	window.onbeforeunload = confirmExit; // Warnung aktiv schalten bei unload-window
	$("#btn-choose").addClass("disabled");	// deaktiviert das Auswahl-Feld		
	sleeping(1500); // wartet 1.5 sek
	$("#loading-rotate").fadeIn(6000); // Upload-Prozess Animation (div mit gif)
}
			
function confirmExit()
{
	return "Warnung: Ein Upload ist gerade aktiv.";
}

Problem ist, dass wenn der User auf Upload drück, die Warnung direkt aufpoppt und danach, wenn die Animation etc. läuft funktioniert es, wie es soll.

Ideen, warum direkt ein Window-Unload nachdem Drücken des Upload eintritt oder ob ein anderer Fehler existiert?

PS: Der Upload-Button hat das Attribut onclick="showLoading()" und das Formular navigiert über post zur gleichen Seite zurück, wo dann das Formular ausgewertet wird.

Danke :)
 
Zuletzt bearbeitet:
raven16 schrieb:
PS: Der Upload-Button hat das Attribut onclick="showLoading()" und das Formular navigiert über post zur gleichen Seite zurück, wo dann das Formular ausgewertet wird.

Ok, du führst also deinen Code als OnClick aus und machst dann einen Postback... finde den Fehler ;-)
 
Jesterfox schrieb:
Ok, du führst also deinen Code als OnClick aus und machst dann einen Postback... finde den Fehler ;-)

Ohman, Schande über mich :D
Die Frage ist dann nur, warum die Animation dann trotzdem funktioniert? Ich drücke ja nur einmal auf den Upload-Button und dann müsste der ja direkt die Animation starten und wieder abbrechen, weil direkt ein Reload auf die gleiche Seite erfolgt.

Bei großen Dateien dauert der Upload durch das PHP-Skript ja dann deutlich länger, daher auch die Animation.

Anhang: ich habe jetzt zum Test <form action="?uploading"> gesetzt und es poppt zuerst der Unload-Alert auf und danach lädt die Seite neu + Animation und irgendwann nach einigen Sekunden leitet er mich erst zu ?uploading weiter...
 
Zuletzt bearbeitet:
Hm, da müsste man sich genauer anschauen was in welcher Reihenfolge passiert, ist bei JS oft nicht so einfach und da kenn ich mich auch nicht tiefer aus.

Der Upload läuft über die Form? Dann denk ich mal das die Verzögerung durch die Datenübertragung noch einiges verändert, die neue Seite wird ja erst geladen wenn der Upload fertig ist. Bis dahin dürfte der Browser in ner Art "Zwischenzustand" sein.
 
Jesterfox schrieb:
Hm, da müsste man sich genauer anschauen was in welcher Reihenfolge passiert, ist bei JS oft nicht so einfach und da kenn ich mich auch nicht tiefer aus.

Der Upload läuft über die Form? Dann denk ich mal das die Verzögerung durch die Datenübertragung noch einiges verändert, die neue Seite wird ja erst geladen wenn der Upload fertig ist. Bis dahin dürfte der Browser in ner Art "Zwischenzustand" sein.

Also mit der Dauer des Ladens nach Klicken des Upload-Buttons hat JS nichts zu tun, weil es, bevor ich JS für die Load-Animation etc. eingebunden hatte, auch schon eine zeitlang gebraucht hatte. Naja bin da auch kein Experte. Ist sowieso auch das erste Mal, dass ich JavaScript verwende :D
 
Zurück
Oben