Если вам это действительно нужно, вы не можете просто получить все ссылки, формы и DOM-объекты, у которых есть обработчик, изменяющий URL, и заставляющий их ждать, пока вы не сделаете то, что хотите.
Для ссылок вы получаете их с помощью getElementsByTagName, проверяете, начинается ли href с чего-либо, кроме #, и просто добавляете свою функцию onbeforeunload add onclick (которая будет вызываться до того, как href будет просматриваться).
То же самое для форм, но с отправкой.
И наконец, для элементов, изменяющих href с помощью JavaScript, вы должны убедиться, что при добавлении lsitener, который вы вызываете своей функцией onbeforeunlaod (или, если вы используете прослушиватели DOM0 или DOM1, вы можете просто добавить некоторый класс и затем использовать глобальный скрипт который проверяет все элементы класса и добавляет его к слушателю события с закрытием.
Но, как правило, вы должны избегать использования этого события (возможно, с помощью файлов cookie для хранения того, что вы хотите отправлять каждые x секунд, и, в худшем случае, сможете посмотреть на него при следующей загрузке пользователя). страницу и, в лучшем случае, сможет отправлять Ajax-запрос при onbeforeunload или onunload, который, даже если он отправляет только заголовки http, woudl позволит вам получить то, что вы хотите).