document.addEventListener(
'click',
(e) => {
console.log('click', e.target);
// аналитика, подтверждение ухода и т.д.
},
true// capture — до обработчиков на цели
);
Capture полезен, если кто-то зовёт stopPropagation в bubble.
Осторожно
Не ломайте доступность и не блокируйте клики глобально без нужды. Для «клик снаружи» модалки слушайте pointerdown и проверяйте contains.
Итог
Один слушатель на document (лучше явно capture/bubble) покрывает почти все клики.