Вы не можете различить ввод нового URL-адреса или закрытие окна, но вы можете добавить обработчик события щелчка ко всем ссылкам, чтобы проверить, собирается ли пользователь уйти, используя ссылку:
var links = document.getElementsByTagName("a");
for(var i = 0; i < links.length; i++) {
links[i].onclick = function() {
if (this.href.test(/^http[s]?:\/\//))
//external link clicked
};
}
Для остальных вы можете использовать window.onbeforeunload
(обратите внимание, что это событие также будет обрабатывать внешние ссылки, поэтому будьте осторожны, чтобы не обрабатывать их дважды, если вы используете предыдущее решение).