Chrome onbeforeunload-Ereignis, wenn die Registerkarte (oder der Browser) geschlossen wird

8

Ich versuche, eine Funktion auszuführen, wenn der Benutzer den Browser oder die Seite verlässt (schließt), und ich habe es in allen Browsern außer Chrome funktioniert.

Chrome führt die Funktion erfolgreich aus, wenn ich von der Seite weg navigiere, sie aber nicht ausführe, wenn ich die Registerkarte schließe oder den Browser vollständig schließe.

Die Funktion, die ich am Ende ausführe, erstellt ein Bild und sendet einige Daten an meinen Server (ähnlich wie jedes analytische Reporting). Beispiel: img.src="url? data = yyy". Dieses Bild wird dynamisch mit js erstellt.

Kann jemand etwas Licht auf das Problem werfen? Ich habe es auf ein paar Gründe beschränkt:

1) Ich verwende nicht das richtige Ereignis, wenn die Registerkarte geschlossen wird (dh nicht vor dem Laden)

2) Chrome führt die Funktion tatsächlich aus, aber das Bild wird nicht gesendet, da die Browser / Seite geschlossen wird.

Jede Hilfe wird geschätzt. Danke.

Hier ist der Beispielcode:

%Vor%     
Nik 05.06.2012, 19:39
quelle

1 Antwort

0

Ich hatte ein verwandtes Problem mit Chrome und löste es mit jQuery:

%Vor%

Aus irgendeinem Grund funktioniert das jQuery-Entladeereignis in Chrome in einigen Fällen besser, wenn JavaScript beforeunload nicht ordnungsgemäß funktioniert.

    
Jorge Ramírez 25.01.2014 07:01
quelle