Подтвердить что ты не робот

Как я могу получить целевой URL для события onbeforeunload?

Я искал часы, но я не мог найти решение для этого.

window.onbeforeunload = warn;

Это не работает:

function warn (e) 
{ 
   var destination = e.href;
   alert(destination );
}

Хорошо, так что все ясно. Если пользователь нажимает на ссылку на самой странице, это легко, потому что вы можете добавить обработчик событий ко всем ссылкам onclick, но. Я хочу поймать адрес, который пользователь вводит в поле URL-адреса браузера.

4b9b3361

Ответ 1

Потому что это невозможно. Новое местоположение - конфиденциальная/конфиденциальная информация. Никто не хочет, чтобы вы знали, какие сайты они посещают, когда покидают ваш сайт.

Ответ 2

Ответ Kaze - интересный подход, но, глядя на элементный фокус, когда страница перемещается в сторону, на самом деле не надежна. Отчасти потому, что существует задержка между щелчком ссылки и навигацией от страницы (в течение этого времени пользователь может перемещать фокус на какой-то другой элемент, но также потому, что ссылка может быть сфокусирована (например, с помощью управления клавиатурой или mousedown-without -click) без фактического использования для перехода от страницы. Поэтому, если вы сосредоточили ссылку, то закрыли окно, подумали бы, что вы следите за ссылкой.

Ловушка onclick для каждой ссылки на странице (плюс onsubmit для каждой формы) немного более надежна, но ее можно одурачить из-за задержки. Например, вы нажимаете ссылку, но затем перед тем, как новая страница начнет загружаться, нажмите кнопку "Назад" (или нажмите "Побег" ). Опять же, если вы закроете окно, он подумает, что вы следуете ссылке.

Я хочу поймать адрес, который пользователь вводит в поле URL-адреса браузера.

Нет такого способа, который когда-либо случится. Это очевидная неприкосновенность частной жизни.

Ответ 3

Если вы просто хотите посмотреть, что ссылку назначения, вы можете использовать:

document.activeElement.href 

Но получение адресата невозможен.

Я слышал о решениях, где они запускают событие, если мышь перемещается вверх по адресной строке (чтобы предупредить пользователя о том, что есть незавершенные процессы, которые не были обработаны), но такого рода хак я никогда не буду сделать.