2016-07-13 11 views

Antwort

1

Sie können dies leider nicht direkt tun, da onbeforeunload den Browser auffordert, den Dialog zu erstellen und Ihnen den Rückgabewert nicht mitteilt, aber Sie können eine globale Variable verwenden, die Sie im Ereignis setzen und zum Beispiel über setInterval überprüfen .

JSFiddle

var confirmUnload = false; 

window.addEventListener("beforeunload", function(event) { 
    confirmUnload = true; 
    event.returnValue = "Really leave?"; 
}); 

window.addEventListener("unload", function(event) { 
    console.log("User left"); 
}); 

setInterval(function(){ 
    if(confirmUnload) { 
     confirmUnload = false; 

     setTimeout(function() { 
      console.log('Still here'); 
     }, 500); 
    } 
}, 400);