为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在卸载前弹出窗口中显示自定义消息?

是否可以在卸载前弹出窗口中显示自定义消息?

30秒到达战场 2019-07-03 17:34:32
是否可以在卸载前弹出窗口中显示自定义消息?使用时window.onbeforeunload(或$(window).on("beforeonload")),是否可以在弹出窗口中显示自定义消息?也许是在主要浏览器上起作用的小把戏?通过查看现有的答案,我觉得这在过去是有可能的,比如confirm或alert或event.returnValue但现在他们似乎不再工作了。那么,如何在卸载前弹出窗口中显示自定义消息?这是可能的吗?
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

为了在用户关闭窗口之前设置确认消息,可以使用

jQuery

$(window).bind("beforeunload",function(event) {
    return "You have some unsaved changes";});

JavaScript

window.onbeforeunload = function() {
    return "Leaving this page will reset the wizard";};


      重要的是要注意到不能 confirm/alert  beforeunload


还有几个注意事项:

  1. 所有浏览器都支持这一点(更多信息在

    浏览器兼容性

    (关于MDN的一节)
  2. 在Firefox中,您必须与页面进行一些真正的交互,这样才能使用户看到此消息。
  3. 每个浏览器都可以将自己的文本添加到您的邮件中。


为了确保-您需要包含jQuery

有关浏览器支持和删除自定义消息的更多信息:

  1. 移除

    版本51中对自定义消息的支持
  2. 歌剧

    移除

    Ver 38中对自定义消息的支持
  3. Firefox在Ver44.0中删除了对自定义消息的支持(仍在寻找此信息的来源)
  4. 狩猎

    移除

    Ver9.1中对自定义消息的支持


查看完整回答
反对 回复 2019-07-03
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

使用时window.onbeforeunload(或$(window).on("beforeonload")),是否可以在弹出窗口中显示自定义消息?

现在不是了。所有主要的浏览器都开始忽略实际的消息,只显示自己的消息。

通过查看现有的答案,我觉得这在过去是有可能的,比如confirmalertevent.returnValue但现在他们似乎不再工作了。

对,是这样。一个短的很久以前,你可以confirmalert,最近您可以从onbeforeunload处理程序和该字符串将被显示。现在,字符串的内容被忽略,它被视为标志。

当使用jQuery的on,您确实需要使用returnValue关于最初的活动:

$(window).on("beforeunload", function(e) {
    // Your message won't get displayed by modern browsers; the browser's built-in
    // one will be instead. But for older browsers, best to include an actual
    // message instead of just "x" or similar.
    return e.originalEvent.returnValue = "Your message here";});

或者传统的方式:

window.onbeforeunload = function() {
    return "Your message here"; // Probably won't be shown, see note above};

这就是你所能做的。


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 904 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信