更改window.beforeunload消息

时间:2013-02-08 13:13:32

标签: javascript jquery

我想知道是否可以更改window.beforeunload消息。互联网上的所有示例都与此类似:

$(window).bind('beforeunload', function() {
    return 'You have unsaved changes. If you leave the page these changes will be lost.';
});

这很酷,在Google Chrome中我的信息会显示,但在Firefox中会显示默认信息。我如何欺骗Firefox显示我的消息而不是默认消息?

1 个答案:

答案 0 :(得分:6)

onbeforeunload是一个奇怪的事件。浏览器一直在讨论如何处理它。

  • IE和Chrome会在对话框中显示您的消息以及他们自己的消息。
  • Firefox用于显示您的消息,但在版本4+中,它们停止支持自定义消息。请参阅:https://bugzilla.mozilla.org/show_bug.cgi?id=588292
  • Opera甚至不支持onbeforeunload方法!

这种方法存在争议,因为它可以用于 evil ,也因为它可能会混淆/惹恼用户。 Scammy,充满病毒的网站可以使用以下消息:

  

“离开该页面意味着您的计算机可能仍然受到感染,请保留并安装我们的病毒扫描程序”

如今,网站可以使用AJAX / localStorage来保存更改,因此不需要此事件。