12

Ich habe schon seit einiger Zeit mit diesem Code und es funktionierte gut, bis gestern:Onbeforeunload nicht richtig für Chrome arbeiten

window.onbeforeunload = function() { 
    return "¡Atención! Si continúas no podrás volver atrás y podrías perder datos. Revisa todos los campos y termina el trabajo antes de moverte de esta página. ¿Seguro que quieres continuar?"; 
} 

Das Problem ist jetzt, dass Chrome dies zeigt:

Chrome screenshot

Aber Rand zeigt ihm den richtigen Weg:

Edge screenshot

Was mache ich falsch?

Hinweis: Sprache ist nicht das Problem, weil ich mit Englisch und Spanisch versucht habe.

Antwort

19

Sie machen nichts falsch. Google hat entschieden, das zu tun, was Mozilla getan hat, und erlaubt Ihnen nicht mehr, eine benutzerdefinierte Nachricht anzuzeigen. Es took effect in Chrome 51.

Sie müssen noch etwas zurückgeben, um das integrierte Dialogfeld zu starten, aber Sie dürfen nicht mehr bestimmen, was das Dialogfeld sagt.

Here's the BugZilla entry wo Mozilla beschlossen, es in Firefox zu tun.

Here's the Chrome issue wo Google beschloss, es in Chrome zu tun.

* (Das neue Chrome 51 Verhalten war reported as a bug, aber innerhalb weniger Stunden war es natürlich geschlossen, wie es durch Design ist.)

+1

+1. Als ich anfing, den Code von OP zu starten, funktionierte er wie erwartet in [diesem Beispiel] (http://jsbin.com/sozeco/edit?js,output), aber nach dem Update auf 51.0.2704.84 gibt er nun die erwartete Nachricht zurück . –