12

Sono stato utilizzando questo codice per qualche tempo e ha funzionato bene fino a ieri:non onbeforeunload funzionando correttamente per 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?"; 
} 

Il problema ora è che Chrome mostra questo:

Chrome screenshot

Ma bordo mostra nel modo giusto:

Edge screenshot

Cosa sto sbagliando?

Nota: La lingua non è un problema perché ho provato sia in inglese che in spagnolo.

risposta

19

Non stai facendo niente di male. Google ha deciso di fare ciò che Mozilla ha fatto e non ti permette più di mostrare un messaggio personalizzato. È took effect in Chrome 51.

È ancora necessario restituire qualcosa per attivare la finestra di dialogo incorporata, ma non è più possibile determinare cosa dice tale finestra di dialogo.

Here's the BugZilla entry dove Mozilla ha deciso di farlo in Firefox.

Here's the Chrome issue dove Google ha deciso di farlo in Chrome.

* (Il nuovo comportamento Chrome 51 era reported as a bug, ma naturalmente era chiuso entro ore come è di progettazione.)

+1

+1. Quando inizialmente ho provato a eseguire il codice di OP, ha funzionato come previsto in [questo esempio] (http://jsbin.com/sozeco/edit?js,output), tuttavia dopo l'aggiornamento a 51.0.2704.84, ora restituisce il messaggio previsto . –

Problemi correlati