Dies besteht häufig ein Bedarf, dh beim Verlassen einer bestimmten Webseite klickt der Benutzer nicht unbedingt, um sich abzumelden, was dazu führt, dass die Sitzung nicht rechtzeitig zerstört wird. Um die automatische Abmeldungsfunktion zu erkennen, wenn der Benutzer die Seite verlässt, muss der Befehl Anmeldung in der Funktion der Ereignishandhabung der Webseite auf der Webseite gesendet werden. Dieser Ort wird hauptsächlich mit AJAX implementiert. Manchmal beinhaltet es auch Probleme mit dem Cross-Domänen-Zugang. An diesem Ort gibt es ein Browserkompatibilitätsproblem.
Es gibt zwei Punkte, die Browser in Unverträglichkeit bei dieser Anforderung vorliegen:
1. Inkompatibilität beim Umgang mit Ajax wird JQuery verwendet, um es hier zu lösen.
2. Inkompatibilität beim Senden von AJAX -Anfrage
Der Hauptcode lautet wie folgt:
Funktion logout () {var logouturl = "xxxx"; // URL, mit der der Benutzer angemeldet wurde, wenn (logouturl == "") Rückgabe; var userAgent = navigator.useragent.tolowerCase (); if (userAgent.indexof ("msie")>-1) {// ie $ .ajax ({url: logouturl, crossdomain: true, async: false, Datentyp: "jsonp"}); } else {// Firefox Chrome $ .ajax ({url: logouturl, async: false}); }} window.onbeforunload = function () {logout (); };Code Beschreibung:
Firefox hat bei der Verarbeitung von JS ein hohes Sicherheitsniveau. Viele Berechtigungen, die JS in IE und Chrom verwenden kann, sind in Friefox so eingeschränkt, also
if (userAgent.indexof ("msie")>-1) {// ie} else {// Firefox Chrome}Dieser Code bestimmt den aktuellen Browsertyp.
Der kompatible Code für Firefox und Chrome lautet wie folgt:
$ .ajax ({url: logouturl, async: false});Async muss auf false eingestellt werden, dh es ist synchron und eine echte asynchrone Methode kann nicht verwendet werden, da sonst die Anfrage möglicherweise nicht versendet wird. Tatsächlich ist Chrome auch für den folgenden IE -Code geeignet. Wenn der Browser ausgeschaltet ist, wird der Anmeldungsbefehl automatisch gesendet. Wenn Sie jedoch auf die Taste des Browser -Aktualisierung klicken, hofft es auch, den Benutzer automatisch anzumelden. Chrome kann nur die obige Codezeile verwenden, um eine Abmeldungsanforderung auszugeben.
Der kompatible Code für IE lautet wie folgt:
$ .ajax ({url: logouturl, Crossdomain: true, async: false, DataType: "jsonp"});Crossdomain ist auf treu eingestellt, um Probleme mit dem Cross-Domain-Zugriff zu lösen. Wenn dieses Problem nicht vorhanden ist, kann diese Eigenschaft ignoriert werden. Es ist am besten, das asynchronisierte Attribut auf False zu setzen, und wahr ist auch in Ordnung. Datentyp: Die Eigenschaft "JSONP" wird auch verwendet, um Probleme mit dem Cross-Domänen-Zugriff zu lösen. Es wird in Verbindung mit Crossdomain verwendet. Es gibt kein Cross-Domain-Problem. Diese beiden Eigenschaften können weggelassen werden.
Der obige Code wurde in IE9, Chrome27 und Firefox21 getestet.
Das obige ist die kurze Diskussion, die der Editor Ihnen über das Fenster bringt. Ich hoffe, jeder unterstützt Wulin.com ~