当前HTML页面的卸载函数是否可以访问浏览器的下一个请求的URL
由于Html代码驻留,直到新的url请求的响应没有到来,然后浏览器调用BeforeUnload和Unload函数。当前HTML页面的卸载函数是否可以访问浏览器的下一个请求的URL
这意味着在浏览器中的任何地方,网址位于已卸载当前网址的位置。那么是否有任何方法可以在Unload函数中获取该(新)URL?
其实我的方案是,我想弹出提供其他选项时弹出,当用户刚刚击中另一个URL不类似于我们的域名,表明他想从我们的网站出去。
否 - 您无权访问此内容。 可以所做的是捕获所有可能导致您离开页面的元素的单击事件,然后将它们的URL存储在全局变量中。然后,您可以在“未装载”前获得该值。
这显然只适用于您网页上的元素。如果用户在地址栏中键入一个URL,那么您就无法捕获该地址。
不,这将是一个严重的安全漏洞。
您可以附加一个事件处理程序到您的窗体和链接,以便您可以通过使用其中一个来确定用户是否正在离开页面。不过,您不能通过书签判断用户是否转到网站上的其他页面,然后输入网址,点击后退等。
进行全局JS值类似 var supressPopup = false;
然后,让所有的外部链接的还包括设置这个布尔到true
的方法(即javascript:supressPopup=true;location.href='newurl.html'
(这是一个丑陋的方式来做到这一点,只是你可以使用一个脚本,扫描所有网页的<a>
标签,并增加了onClick事件的示例 - 如果href
不http
开始)
然后,在你unload
代码,检查supressPopup
;如果是假的,显示你的弹出。
这不会给出外部文件的URL,但它会告诉你*如果*它不是*外部文件。 – Tim 2012-01-12 20:14:43
不,不可能读取下一个文档的位置。 – 2012-01-12 20:09:21