我怎样才能在JavaScript onbeforeunload事件中获取目标url?

我已经search了几个小时,但我找不到解决scheme。

window.onbeforeunload = warn; 

这不起作用:

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

好吧,清除这些东西。 如果用户点击页面本身的链接,很容易,因为您可以添加一个事件处理程序到所有的链接onclick事件,但是。 我想赶上地址,用户input到浏览器的url框中。

因为它不能做到。 新位置是私人/敏感信息。 没有人希望您知道他们离开您的网站时访问哪些网站。

Kaze的回答是一个有趣的方法,但是当页面离开时查看元素焦点并不是真的可靠。 部分原因是链接点击和离开页面的导航之间存在延迟(在此期间用户可能将焦点移动到某个其他元素,而且还因为链接可能被聚焦(例如,通过键盘控制或mousedown因为如果你关注一个链接然后closures窗口,它会认为你正在关注这个链接。

点击页面上的每个链接(外加每个表单上的提交)稍微可靠一些,但仍然可能因为延迟而被愚弄。 例如,您单击一个链接,但在新页面开始加载之前,点击后退button(或按Escape键)。 同样,如果你closures窗口,它认为你正在关注链接。

我想赶上地址,用户input到浏览器的url框中。

没有办法可能会发生。 这是一个明显的隐私禁止。

如果您只想查看目标链接,可以使用:

 document.activeElement.href 

但是获得地址线的目的地是不可能的。

我听说过,如果鼠标移动到地址线上(以警告用户有尚未处理的未完成的进程),他们就会触发一个事件,但这种攻击是我永远不会做的。