我们可以访问主流HTML页面中浏览器下一次请求的URL吗;s卸载功能
Can we access the URL of next request of browser in prevailing HTML page 's unload function
由于Html代码一直存在,直到新的url请求没有响应。然后浏览器调用BeforeUnload和Unload函数。
这意味着在浏览器中的任何位置,url都位于卸载当前url时被击中的位置。那么,有什么方法可以在Unload函数中获得(新的)URL吗?
事实上,我的场景是,当用户刚刚点击另一个与我们的域不相似的URL时,我想打开弹出窗口来提供其他选项,表明他想离开我们的网站。
否-您没有访问权限。可以为所有会导致您离开页面的元素捕获点击事件,然后将它们的URL存储在全局变量中。然后,您就可以在"加载之前"获得该值。
这显然只适用于页面上的元素。如果用户在地址栏中键入一个URL,那么你就无法捕捉到它。
不,这将是一个严重的安全漏洞。
您可以将事件处理程序附加到表单和链接,这样您就可以通过使用其中一个来判断用户是否要离开页面。你无法判断用户是否通过书签、键入URL、点击返回等方式转到你网站上的另一个页面。
使全局JS值类似var supressPopup = false;
然后,让你的所有外部链接也包括一个方法,将这个布尔值设置为true
(即javascript:supressPopup=true;location.href='newurl.html'
(这是一种很糟糕的方法,但只是一个例子-如果href
不是以http
开头,你可以使用一个脚本扫描页面的所有<a>
标记,并添加一个onClick事件)
然后,在您的unload
代码中,检查supressPopup
;如果它是假的,显示你的弹出窗口。
相关文章:
- 在Flask中使用.getJSON请求时,只运行一次命令
- 优化的方法;标题“;只发送一次POST请求即可访问网站
- http请求,每500ms一次,直到请求完成Angular
- 多久向服务器发送一次Http请求以检查更新?(Ajax)
- 如何在节点中使用承诺一次并行异步多个请求
- 授权标头仅在 AJAX CORS 请求中追加一次
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- AJAX 请求触发 4 次而不是一次
- AJAX 请求只发生一次(PHP 表单请求)
- 如何删除浏览器在一次请求期间添加的所有 Cookie
- 在每秒 10 次调用限制的情况下一次发出 50 个 API 请求的有效方法是什么(烂番茄 API)
- 使用RxJS限制一次的请求数
- Ajax iframe请求在Internet Explorer中只能工作一次
- 事件发射器发射一次,请求挂起
- 如何获得用户's的位置,而无需请求许可,或者如果用户允许一次,则无需再请求
- 为什么我的页面中的AJAX请求只工作一次
- Jquery Queue请求集成一次First Request Success,然后调用下一个请求
- 如何将数据推送到JSP,而不是每2秒请求一次
- Ajax 2请求一次
- 许多请求一次解析