12

Używam tego kodu na jakiś czas i to działało dobrze aż do wczoraj:nie onbeforeunload działa poprawnie dla Chrome

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?"; 
} 

Problem jest teraz, że Chrome pokazuje to:

Chrome screenshot

Ale krawędzi pokazuje to we właściwy sposób:

Edge screenshot

Co robię źle?

Uwaga: Język nie jest problemem, ponieważ próbowałem z angielskim i hiszpańskim.

Odpowiedz

19

Nie robisz niczego złego. Google zdecydowało się zrobić to, co zrobiła Mozilla i nie pozwala już pokazywać niestandardowego komunikatu. To took effect in Chrome 51.

Nadal musisz zwrócić coś, aby uruchomić wbudowane okno dialogowe, ale nie możesz już określać, co mówi ten dialog.

Here's the BugZilla entry gdzie Mozilla zdecydowała się zrobić to w Firefoksie.

Here's the Chrome issue gdzie Google zdecydowało się zrobić to w Chrome.

* (Nowy Chrom 51 zachowanie było reported as a bug, ale naturalnie zamknięto w ciągu kilku godzin, jak to od samego).

+1

+1. Kiedy początkowo próbowałem uruchomić kod OP, działało to zgodnie z oczekiwaniami w [tym przykładzie] (http://jsbin.com/sozeco/edit?js,output), jednak po aktualizacji do 51.0.2704.84, teraz zwraca oczekiwaną wiadomość . –