не могу получить onbeforeunload, работающий в Chrome - PullRequest
1 голос
/ 20 января 2012

Я смотрел на подобные вопросы на этом сайте, но я не видел, почему это не работает для меня.

У меня установлена ​​последняя версия Chrome.
Я не могу заставить следующий код работать в chrome, хотя он работает и в Firefox.

Hello World!

<script>
    window.onbeforeunload = function(){
        alert("brohan");
    }
</script>

Ответы [ 2 ]

0 голосов
/ 26 февраля 2015

Может быть поздно, но я хочу добавить кое-какое обновление здесь:

  1. Настраиваемое сообщение в window.onbeforeunload намеренно отключено Firefox (я использую версию 35.0).: (
  2. Обход, предложенный @ecmanaut, сейчас не работает - похоже, Firefox отключил window.alert в обработчике onbeforeunload. Описано в здесь

И я сам попробовал это в Firefox 35.0 в Mac OS X:

var isFirefox = /Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) > 4;
window.onbeforeunload = function(e) {
  if (isFirefox) {
    window.alert('You are in firefox. Leaving this page you may lose some data.');
    return '...';
  }
  else {
    return 'Leaving this page you may lose some data.';
  }
 }

При обновлении / щелчке по внешним ссылкам этот фрагмент не будет запускать функцию alert, а также окно предупреждения по умолчанию отбраузер. Он просто покидает страницу.

Надеюсь, это сообщение поможет.

0 голосов
/ 24 мая 2012

Чтобы сделать то, что вы хотите, ваш скрипт должен выглядеть следующим образом:

<script>
  window.onbeforeunload = function() {
    return "brohan";
  };
</script>

Если вы хотите проинформировать пользователей Firefox 4+ также о , почему вы спрашиваете их (где ваше, надеюсь, полезное сообщение намеренно отключено ), вы можете принять это решение: http://jsfiddle.net/ecmanaut/hQ3AQ/

...