2016-04-26 3 views
0

Immer wenn die Seite aktualisiert oder entladen wird, wird das window.onbeforeunload -Ereignis ausgelöst. Wenn dieses Ereignis ausgelöst wird, wird ein Bestätigungs-/Warnfeld angezeigt. In diesem Bestätigungs-/Alarmfeld haben wir zwei Optionen: "Diese Seite verlassen" und "Auf dieser Seite bleiben". Ich möchte verschiedene Aktionen ausführen, wenn diese zwei Schaltflächen/Optionen angeklickt werden. Wie kann ich das/Capture von diesen klicken? Tasten?Wie Wert abgerufen und verwendet wird, wird in der return-Anweisung von window.onbeforeunload-Ereignis angezeigt

<!DOCTYPE html> 
    <html> 
    <body > 


    <p>Close this window, press F5 or click on the link below to invoke the onbeforeunload event.</p> 

    <a href="http://www.w3schools.com">Click here to go to w3schools.com</a> 

    <script> 
    window.onbeforeunload = function() { 

     return "Do yoy want to Quit?"; 
    } 
    </script> 

    </body> 
    </html> 
+0

Sie können nicht. Sie könnten * einen Timer auf beispielsweise 30 Sekunden in der Zukunft einstellen und dann reagieren, wenn der Timer noch ticken kann. Das * kann * nicht funktionieren, wenn der Benutzer mehr als 30 Sekunden wartet, bevor er die Bestätigungsnachricht abweist. –

Antwort

1

Basierend auf Anregung von Frederic wollte ich den Timer testen, und das Ergebnis ist: Sie können überprüfen, ob der Benutzer auf der Seite bleibt, aber Sie können nicht, wenn er herauskommt und abfangen der Veranstaltung. Der Timer startet, wenn Sie eine Auswahl treffen, dann ist der Timer nützlich, um dem Browser Zeit zu geben, die neue Seite zu laden (wenn Sie Ihren Browser schließen, ist sofort und die Zeit ist relativ). Aber wenn der Timer abgelaufen ist, haben Sie die Antwort, dass Sie auf Ihrer Seite bleiben wollen.

Getestet auf Chrome, für andere muss getestet werden.

window.onbeforeunload = function() { 
    setTimeout(function(){ 
     console.log('I\'m still here !'); 
    },5000); 
    return "Do yoy want to Quit?"; 
} 

Ich hoffe, es hilft Ihnen.

Verwandte Themen