Я вижу, что в документе написано: «Действие по умолчанию: сигнализирует о том, что документ должен быть выгружен». Но это нееееееет быть выгруженным! Flippin 'IE. Я действительно думал, что версия 9 уберет ее из слота номер один в моем списке самых популярных браузеров, но нет.

ример теста HTML:

<!DOCTYPE html>
<html>
  <body>
    <a href="javascript:alert('Not going anywhere!');">Go nowhere 1</a>
    <a href="javascript:void(0);" onclick="alert('Not going anywhere!');">Go nowhere 2</a>
    <a href="http://www.google.com">Go somewhere</a>
    <script type="text/javascript">
      window.onbeforeunload = function() { return "Really leave?"; };
    </script>
  </body>
</html>

Это доступно как рабочая страница здесь:timjeanes.com/ie9_onbeforeunload.htm

В Firefox, Chrome и Safari я получаю желаемое поведение. То есть, щелкнув любую из первых двух ссылок, вы увидите диалоговое окно с предупреждением; Если щелкнуть по третьей ссылке (или иным образом перейти прочь), появится сообщение «Вы уверены, что хотите покинуть эту страницу?» сообщение.

Однако в IE9 вы уверены, что хотите покинуть эту страницу? сообщение также отображается при нажатии на любую из первых двух ссылок, даже если навигация не выполняется - мы просто запускаем некоторый JavaScript.

Я что-то не так делаю? Или есть хороший обходной путь для IE?

Одним из вариантов было бы использовать href = "#" и поместить мой javascript в onclick. Я не заинтересован в этом, так как он поднимает пользователя наверх страницы, а моя настоящая страница довольно высокая.

Я не тестировал в других версиях IE.

Ответы на вопрос(5)

Ваш ответ на вопрос