Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们是否可以访问当前HTML页面中浏览器下一个请求的URL';s卸载功能_Javascript_Jquery_Cross Browser - Fatal编程技术网

Javascript 我们是否可以访问当前HTML页面中浏览器下一个请求的URL';s卸载功能

Javascript 我们是否可以访问当前HTML页面中浏览器下一个请求的URL';s卸载功能,javascript,jquery,cross-browser,Javascript,Jquery,Cross Browser,由于Html代码一直驻留在新url请求的响应未出现之前。然后浏览器调用BeforeUnload和Unload函数 这意味着在浏览器中的任何位置,url都位于卸载当前url时被命中的位置。那么,我们有没有办法在卸载函数中获取(新的)URL 实际上,我的情况是,当用户刚刚点击了另一个与我们的域不相似的URL时,我希望弹出窗口来提供其他选项,表明他想离开我们的站点。否-您没有访问权限。您可以做的是捕获所有元素的单击事件,这些元素会导致您离开页面,然后将它们的URL存储在全局变量中。然后,您就可以在“卸

由于Html代码一直驻留在新url请求的响应未出现之前。然后浏览器调用BeforeUnload和Unload函数

这意味着在浏览器中的任何位置,url都位于卸载当前url时被命中的位置。那么,我们有没有办法在卸载函数中获取(新的)URL


实际上,我的情况是,当用户刚刚点击了另一个与我们的域不相似的URL时,我希望弹出窗口来提供其他选项,表明他想离开我们的站点。

否-您没有访问权限。您可以做的是捕获所有元素的单击事件,这些元素会导致您离开页面,然后将它们的URL存储在全局变量中。然后,您就可以在“卸载前”使用该值


这显然只适用于页面上的元素。如果用户在地址栏中键入URL,则无法捕获该URL。

不,这将是一个严重的安全漏洞


您可以将事件处理程序附加到表单和链接,以便通过使用其中一个来判断用户是否正在离开页面。您无法通过书签、键入URL、单击“上一步”等方式判断用户是否要访问您站点上的其他页面。

创建一个类似以下内容的全局JS值
var supersspoop=false

然后,使所有外部链接也包含一个方法,该方法将此布尔值设置为
true
(即
javascript:superspopup=true;location.href='newurl.html'
(这是一种丑陋的方式,但只是一个示例-如果
href
不是以
http
开头,您可以使用一个脚本扫描页面的所有
标记并添加onClick事件)


然后,在
卸载
代码中,检查
superspopup
;如果为false,则显示您的弹出窗口。

否,无法读取下一个文档的位置。如果使
卸载
代码使用一个值,该值由不允许用户离开的元素更改,则它还将捕获地址栏出口(尽管它不会给出URL)你失去了我-你为什么要用不能让用户离开的元素来更改值?这样,你知道什么时候不显示弹出窗口,并且你假设每个其他操作都应该显示弹出窗口-这将包括用户关闭窗口、在URL栏中键入地址等。好的,我可以看到你现在得到了什么,但他是询问如何获取你要去哪里的URL。他总是可以轻松地使用beforeunload方法捕获离开页面,而不必将任何事件绑定到不会导致离开页面的控件。我更多地回答了他的问题的最后一部分,那就是他不需要明确的URL,他只需要知道它们是否可用正在保存他的域。这不会给出外部文档的URL,但会告诉您它是否不是外部文档。