首页 > 解决方案 > 为什么浏览器不支持自定义 onbeforeunload 消息?

问题描述

警报中自定义文本的支持onbeforeunload一直很差,浏览器使它变得更差(不再支持自定义文本)。

对于渐进式 Web 应用程序和所有应用程序,似乎应该推动这样的功能,因为所有依赖于某种数据同步的应用程序都可能需要提醒用户数据未保存。

那么在窗口关闭期间自定义警报仍然不可用的原因是什么?

标签: javascriptweb-applicationsprogressive-web-apps

解决方案


最初返回值被用作消息。HTML5 规范说:

returnValue属性表示要向用户显示的消息。

但是恶意软件作者将消息放在那里以吓唬人们关闭他们的弹出窗口。他们会告诉用户他们的计算机被感染了,他们需要下载网站的软件来清理它;实际上,他们告诉用户安装的软件是恶意软件。

所以HTML 生活标准现在说:

BeforeUnloadEvent接口是一个遗留接口,它不仅可以通过取消事件来控制提示卸载,还可以通过将returnValue属性设置为空字符串之外的值来控制。

它不再说应该向用户显示返回值,这允许浏览器改为显示罐装消息,以防止此类滥用。它还标准化了特定浏览器中跨 Web 应用程序的用户体验。不幸的是,这意味着用户体验因浏览器而异,这对于希望为所有用户提供标准体验的应用程序开发人员来说可能很烦人。


推荐阅读