2

我想知道是否可以更改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 显示我的消息而不是默认消息?

4

1 回答 1

6

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

  • IE 和 Chrome 将在对话框中显示您的消息以及它们自己的消息。
  • Firefox 曾经显示您的消息,但在版本 4+ 中,它们停止支持自定义消息。看到这个:https ://bugzilla.mozilla.org/show_bug.cgi?id=588292
  • Opera 甚至不支持该onbeforeunload方法!

这种方法正在辩论,因为它可以用于邪恶,也因为它可以混淆/惹恼用户。欺诈性的、充满病毒的网站可以使用以下消息:

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

现在,网站可以使用 AJAX / localStorage 来保存更改,所以这个事件并不是真正需要的。

于 2013-02-08T16:11:19.007 回答