12

正常工作,我已經使用了一段時間的代碼已經和它工作得很好,直到昨天:onBeforeUnload不爲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?"; 
} 

現在的問題是,Chrome會顯示這樣的:

Chrome screenshot

但Edge顯示它正確的方式:

Edge screenshot

我在做什麼錯?

注:語言不是問題,因爲我有英語和西班牙語嘗試。

回答

19

你沒有做錯什麼。谷歌決定做Mozilla所做的事情,並且不允許你再顯示自定義消息。它took effect in Chrome 51

您仍然需要返回某些內容以觸發內置對話框,但不再允許您確定該對話框所說的內容。

Here's the BugZilla entry其中Mozilla決定在Firefox中執行此操作。

Here's the Chrome issue Google決定在Chrome中完成此操作。

×(新的Chrome 51的行爲是reported as a bug,但自然有人小時內關閉,因爲它是由設計。)

+1

+1。當我最初嘗試運行OP的代碼時,它在[本示例](http://jsbin.com/sozeco/edit?js,output)中按預期工作,但是在更新到51.0.2704.84後,它現在返回預期的消息。 –