Цель состоит в том, чтобы предотвратить перенаправление пользователей при случайных нажатиях на внешние ссылки, когда пользователь заполняет форму.
Проблема: весь код должен быть абстрактным. Я не знаю, какие ссылки нажимает пользователь, я не знаю, заполнена ли форма полностью или частично.
Если форма пуста, то перенаправить пользователя без диалогового окна / окна подтверждения.
Вот код:
function exit_confirm(event) {
let url;
if (event.target.nodeName === "a") {
url = event.target.getAttribute('href');
}
if (window.confirm('Do you want to leave the site?')) {
window.location.href = url;
}
}
function getAllElementsWithDataAttribute() {
return document.querySelectorAll('*[data-]');
}
function registerOnClickChangeKeydownEventsOfElementsWith() {
let elementsWithDataAttribute = getAllElementsWithDataAttribute();
['click', 'change', 'keydown'].forEach(evt => {
elementsWithDataAttribute.addEventListener(evt, exit_confirm, false);
});
}
Код не является окончательной версией.
Я должен получить url
по нажатой ссылке и передать его window.location.href
Мне также нужно проверить нажатую ссылку, если это внешняя ссылка.
*[data-]
- здесь должно быть что-то, что определяет ссылку