Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

onBeforeUnload not working correctly for Chrome

I've been using this code for some time and it worked fine until yesterday:

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

The problem now is that Chrome shows this:

Chrome screenshot

But Edge shows it the right way:

Edge screenshot

What am I doing wrong?

Note: Language is not the problem because I've tried with both English and Spanish.

like image 839
juancrrn Avatar asked Jun 09 '16 12:06

juancrrn


1 Answers

You're not doing anything wrong. Google has decided to do what Mozilla did and not allow you to show a custom message anymore. It took effect in Chrome 51.

You still need to return something to trigger the built-in dialog, but you're no longer allowed to determine what that dialog says.

Here's the BugZilla entry where Mozilla decided to do it in Firefox.

Here's the Chrome issue where Google decided to do it in Chrome.

*(The new Chrome 51 behavior was reported as a bug, but naturally it was closed within hours as it's by design.)

like image 140
T.J. Crowder Avatar answered Nov 15 '22 18:11

T.J. Crowder