20 Stimmen

'beforeunload' Chrome-Problem

Ich habe dieses einfache Stück Code -

$(window).bind('beforeunload', function(){
    alert("Auf Wiedersehen")
});

Funktioniert gut mit Firefox, IE8, aber nicht in Chrome. Ist das ein bekanntes Problem oder gibt es dafür eine Alternative?

Eigentlich versuche ich, Details zu protokollieren, wann immer der Benutzer versucht, den Browser zu schließen.

function LogTime()
{
    jQuery.ajax({
      type: "POST",
      url: "log.php",
      data: "",
      cache: false,
      success: function(response)
      {
      }
    );
}

$(window).bind('beforeunload', function(){
    LogTime();
});

Dies funktioniert gut in Firefox, aber nicht in Chrome

18voto

Sampson Punkte 258265

Gib stattdessen einen String zurück:

$(window).on('beforeunload', function(){
    return "Auf Wiedersehen";
});

7voto

Versuchen Sie dies für alle Browser:-

window.addEventListener("beforeunload", function (e) {

  var confirmationMessage = "\o/";     
  e.returnValue = confirmationMessage;           
  return confirmationMessage;       

});

6voto

xdazz Punkte 155864

Versuchen Sie unten:

$(window).on('beforeunload', function(){
  return "Auf Wiedersehen";
});

6voto

user1703776 Punkte 61

Ich musste es in ein jQuery(document).ready einfügen, um es in Chrome zum Laufen zu bringen

  jQuery(document).ready( 
    function () { 
      jQuery(window).bind('beforeunload',  
        function (e) {  

          [code here]

        } 
      );

    } 
  );

2voto

Marcelo Noronha Punkte 787

Versuche das:

function LogTime(){

jQuery.ajax({
  type: "POST",
  url: "log.php",
  data: "",
  cache: false,
  success: function(response){

  }
});

}

 $(window).bind('beforeunload', function(){
     LogTime();
     return "Sie verlassen die Seite?";
 });

Es scheint, dass solange du am Ende des Funktionskörpers einen String für dieses Ereignis zurückgibst, du Code vor diesem String ausführen kannst.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X