JavaScript的onbeforeunload未显示自定义消息

55

我之前为onbeforeunload事件添加了自定义提示信息,一直运行良好。但今天我发现它不再显示我的提示信息,而是显示“您所做的更改可能未保存”。

window.onbeforeunload = function () {

    return 'Custom message'
}

有人可以告诉我如何解决吗?


1个回答

97
为了防范欺诈,Chromium(包括Chrome)已经决定删除在onbeforeunload对话框中设置自定义消息的功能。
请参考这篇2016年2月18日的漏洞报告

onbeforeunload对话框在现代网络中用于两件事情:
1. 防止用户意外丢失数据。
2. 欺诈用户。

为了限制后者的使用而不影响前者,我们将不显示网页提供的字符串。相反,我们将使用通用字符串。

Firefox已经这样做了[...]


有没有一种解决方法可以向用户显示自定义消息? - R.S.K
19
@R.S.K 不行,那会违背他们这样做的原因。 - Kevin Wiskia
6
我非常高兴他们终于这样做了。这将减少网络上寄生虫的把戏。 - John Weisz
6
是的,但不幸的是那些滥用它的人又一次伤害了那些没有滥用它的人...... 如果提示信息改为“您有未保存的更改,确定要离开当前页面”之类的话会更好一些。 - Dylan Hayes
我同意...骗子们已经对我们造成了影响..如果我的网站离线,我想在用户关闭它时警告他们。 - baash05
@baash05,你可以捕捉用户在页面顶部滚动鼠标并显示警告 - https://github.com/carlsednaoui/ouibounce - eggnukes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接