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 screenshot

Что я делаю неправильно?

Примечание: Язык не является проблемой, потому что я пробовал как на английском, так и на испанском языках.

ответ

19

Вы не делаете ничего плохого. Google решила сделать то, что сделала Mozilla, и не позволяет вам показывать собственное сообщение больше. Это took effect in Chrome 51.

Вам все равно нужно вернуть что-то, чтобы вызвать встроенный диалог, но вам больше не разрешено определять, что говорит этот диалог.

Here's the BugZilla entry, где Mozilla решила сделать это в Firefox.

Here's the Chrome issue, где Google решил сделать это в Chrome.

* (Новое поведение Хром 51 был reported as a bug, но, естественно, он был закрыт в течение нескольких часов, как это дизайн.)

+1

+1. Когда я изначально пытался запустить код OP, он работал как ожидалось в [этом примере] (http://jsbin.com/sozeco/edit?js,output), однако после обновления до 51.0.2704.84 он теперь возвращает ожидаемое сообщение , –

Смежные вопросы