Hallo Forum,
seit mittlerweile drei Tagen wurschtle ich an einem Problem herum, dass mich in den Wahnsinn treibt!
Folgender Sachverhalt:
Beim verlassen der Seite sollen verschiedene Einstellungen des Users über Ajax in eine Datenbank geschrieben werden. Als event verwende ich onunload und onbeforeunload.
Das klappt soweit auch ganz gut, nur für den Firefox muss ich der aufgerufenen funktion ein return true/false hinzufügen damit der abschließende Schritt auch ausgelöst wird.
Firefox führt die Funktion dann aus, aber:
Jetzt erscheint durch den Rückgabe-Parameter bei jedem Klick auf einem Hyperlink "Möchten Sie wirklich diese Seite verlassen?".
Diese Meldung nervt unheimlich und ich würde sie gerne unterdrücken/vermeiden/umgehen.
Hat jemand eine Idee?
P.S.: Auch wenn ich Asynchron auf false stelle (bei Ajax) wird der request nicht abgesetzt bzw. abgebrochen, wenn ich den Rückgabe Parameter weglasse.
Hier der Code-Snippet:
window.onbeforeunload=Verlassen;
function Verlassen()
{
AjaxSend("save.asp","Hans=Wurst&Bush=doof","POST",false);
return 0; // Wenn ich das weglasse wird die Funktion im FF nicht abgeschlossen!
}
function AjaxSend(url,ParaData,SendMethod,bolAsynchronos)
{
http_request = false;
if (window.XMLHttpRequest)
{ // Mozilla, Safari,...
http_request = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{ // IE
try
{http_request = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e)
{try
{http_request = new ActiveXObject("Microsoft.XMLHTTP");}
catch (e) {}
}
}
if (!http_request)
{
return false;
}
http_request.open(SendMethod, url, bolAsynchronus);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", params.length);
http_request.setRequestHeader("Connection", "close");
}
http_request.onreadystatechange = FertigGeladen;
http_request.send(params);
}
Warum kommt unter FF diese doofe Meldung und wie kann ich sie umgehen?
Für einen Tip wäre ich echt dankbar