Ответ 1
Потому что это невозможно. Новое местоположение - конфиденциальная/конфиденциальная информация. Никто не хочет, чтобы вы знали, какие сайты они посещают, когда покидают ваш сайт.
Я искал часы, но я не мог найти решение для этого.
window.onbeforeunload = warn;
Это не работает:
function warn (e)
{
var destination = e.href;
alert(destination );
}
Хорошо, так что все ясно. Если пользователь нажимает на ссылку на самой странице, это легко, потому что вы можете добавить обработчик событий ко всем ссылкам onclick, но. Я хочу поймать адрес, который пользователь вводит в поле URL-адреса браузера.
Потому что это невозможно. Новое местоположение - конфиденциальная/конфиденциальная информация. Никто не хочет, чтобы вы знали, какие сайты они посещают, когда покидают ваш сайт.
Ответ Kaze - интересный подход, но, глядя на элементный фокус, когда страница перемещается в сторону, на самом деле не надежна. Отчасти потому, что существует задержка между щелчком ссылки и навигацией от страницы (в течение этого времени пользователь может перемещать фокус на какой-то другой элемент, но также потому, что ссылка может быть сфокусирована (например, с помощью управления клавиатурой или mousedown-without -click) без фактического использования для перехода от страницы. Поэтому, если вы сосредоточили ссылку, то закрыли окно, подумали бы, что вы следите за ссылкой.
Ловушка onclick
для каждой ссылки на странице (плюс onsubmit
для каждой формы) немного более надежна, но ее можно одурачить из-за задержки. Например, вы нажимаете ссылку, но затем перед тем, как новая страница начнет загружаться, нажмите кнопку "Назад" (или нажмите "Побег" ). Опять же, если вы закроете окно, он подумает, что вы следуете ссылке.
Я хочу поймать адрес, который пользователь вводит в поле URL-адреса браузера.
Нет такого способа, который когда-либо случится. Это очевидная неприкосновенность частной жизни.
Если вы просто хотите посмотреть, что ссылку назначения, вы можете использовать:
document.activeElement.href
Но получение адресата невозможен.
Я слышал о решениях, где они запускают событие, если мышь перемещается вверх по адресной строке (чтобы предупредить пользователя о том, что есть незавершенные процессы, которые не были обработаны), но такого рода хак я никогда не буду сделать.