Как исправить функцию Javascript, чтобы мое сообщение всплывало - PullRequest
1 голос
/ 08 апреля 2019

Я работаю над уроком для домашней работы, и это единственная функция, которая не работает.Сообщение в функции (событии) не будет отображаться на экране.Спасибо.

window.addEventListener('beforeunload', function (event) {
    return 'You have changes that have not been saved...';
}, false);

Я ожидаю, что событие сработает, когда я что-то наберу в текстовом поле и попытаюсь перезагрузить страницу.

1 Ответ

1 голос
/ 08 апреля 2019

Я бы порекомендовал прочитать документацию Mozilla , касающуюся этого, в соответствии с документацией, для вызова которой нужно вызвать метод preventDefault(), необходимо вызвать

, например:

window.addEventListener('beforeunload', (event) => {
  // Cancel the event as stated by the standard.
  event.preventDefault();
  // Chrome requires returnValue to be set.
  event.returnValue = '';
});

Однако он работает без вызова метода preventDefault(), поскольку в документации говорится, что это поддерживается не всеми браузерами.

Некоторые браузеры вместо этого требуют, чтобы вы либо присвоили строку событиямreturnValue свойство или возврат строки из обработчика события.

В вашем случае я бы также возвратил пустую строку, подобную этой event.returnValue = '';, причина в том, что пользовательские строки были поддержаны, однако это теперь устарело и недоступнов большинстве браузеров.

В заключение я настоятельно рекомендую прочитать документацию Mozilla и использовать приведенный выше пример кода, в зависимости от вашего браузера вы должны сохранить или удалить event.preventDefault();

...