如何获取onbeforeunload事件的目标URL?

时间:2009-11-06 10:21:25

标签: javascript url javascript-events onunload

我已经搜索了几个小时,但我找不到解决方法。

window.onbeforeunload = warn;

这不起作用:

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

好的,所以要清除这些事情。如果用户单击页面本身上的链接,则很容易,因为您可以将事件处理程序添加到所有链接onclick事件,但是。我想要抓住地址,用户在浏览器的URL框中输入的内容。

3 个答案:

答案 0 :(得分:62)

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

答案 1 :(得分:20)

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

document.activeElement.href 

但是无法获得地址线目的地。

我听说过如果鼠标移动到地址线时会触发事件的解决方案(警告用户有未完成的未完成的进程),但是这种黑客我永远不会做。

答案 2 :(得分:18)

Kaze的回答是一种有趣的方法,但是当页面被导航离开时,查看元素焦点并不可靠。部分是因为链接点击和远离页面的导航之间存在延迟(在此期间用户可能将焦点移动到某个其他元素,但也因为链接可能被聚焦(例如,通过键盘控制或mousedown-没有) -click)实际上并没有被用来离开页面。所以如果你关注一个链接然后关闭窗口,它会认为你正在关注链接。

为页面上的每个链接捕获onclick(在每个表单上加上onsubmit)稍微更可靠,但由于延迟仍然可以被愚弄。例如,您单击一个链接,但在新页面开始加载之前点击后退按钮(或按Escape键)。同样,如果您关闭窗口,它会认为您正在关注该链接。

  

我想抓住地址,用户在浏览器的网址框中输入的内容。

永远不会发生任何事情。这是一个明显的隐私禁忌。