从Chrome V80开始,不赞成使用preununload,unload等事件。我们将如何在JavaScript中进一步处理此类现有事件?
我的要求是在用户尝试刷新/重新加载页面(F5或ctrl + r)或浏览器后退按钮时发出警报,我需要发出警报,并在确认后需要重新加载或后退。这是在JSF2.2中
但是该行为不会影响其他浏览器的功能。
有人可以帮我吗
答案 0 :(得分:1)
beforeunload
事件将仍然可用。更改的是在页面关闭期间执行同步XHR的功能。长期将不推荐使用的真正有害的东西是同步XHR,因为它会损害用户体验。您仍然可以使用beforeunload
。 Getting Rid of Synchronous XHRs特别提到了这一点:
注意:我们希望在计划于2020年初发布的Chrome版本80中的页面卸载期间删除对XMLHTTPRequest()同步使用的支持。
在Chrome Platform Status: Disallow sync XHR in page dismissal中也有有关此特定更改的信息。 Deprecations and removals in Chrome 80中有关于Chrome 80的更多信息:
现在,当页面离开用户导航或被用户关闭时,Chrome不允许在页面关闭期间同步调用
XMLHTTPRequest()
。这适用于beforeunload
,unload
,pagehide
和visibilitychange
。为确保在页面卸载时将数据发送到服务器,我们建议使用
sendBeacon()
或Fetch
keep-alive
。目前,企业用户可以使用AllowSyncXHRInPageDismissal
策略标志,而开发人员可以使用原始试用标志allow-sync-xhr-in-page-dismissal
来允许页面卸载期间的同步XHR请求。这是一项暂时的“退出”措施,我们希望在Chrome 82中删除此标志。
请注意,页面关闭期间的弹出窗口也将被禁止:
页面在卸载过程中可能不再使用
window.open()
打开新页面。 Chrome弹出窗口阻止程序已经禁止了此操作,但是现在禁止是否启用了弹出窗口阻止程序。