Я вижу, что в документе написано: «Действие по умолчанию: сигнализирует о том, что документ должен быть выгружен». Но это нееееееет быть выгруженным! 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.