Отмена onBeforeUnload с помощью addEventListener

Я пытаюсь выяснить, как предотвратить onBeforeUnload событие от запуска в IE9+ при использовании ссылок без ссылок.

Здесь я настроил скрипку (упрощенный тест реального сценария), которая в значительной степени описывает то, что я пытаюсь выполнить. Всякий раз, когда onBeforeUnload срабатывает (например, при нажатии на ссылку) фон страницы становится синим. Когда используешь attachEvent Я могу легко return false чтобы этого не случилось. Но при добавлении события нажатия на ссылку с addEventListener, оператор возврата не имеет никакого значения. Более или менее я хотел бы, чтобы ссылка 4 вела себя как ссылка 2.

Да, переход от ссылок на кнопки был бы решением. Изменение функциональности onBeforeUnload (например, использование этого кода как части функции щелчка) было бы другим. Но, к сожалению, я не могу контролировать эти части кода.

Так. Есть ли способ остановить события клика по ссылкам из триггера? onBeforeUnload при настройке с addEventListener? Или MS удалил эту возможность при миграции с attachEvent в addEventListenerпотому что вообще плохая идея запретить пользователям переходить со страницы?

1 ответ

Решение

При использовании addEventListener вы можете добавить параметр в вашу функцию слушателя.
Параметр будет содержать событие, которое сработало (вы можете остановить это)
использование event.preventDefault() при условии, что параметр называется событием.

Посмотрите этот jsFiddle в качестве примера

Другие вопросы по тегам