栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript如何覆盖OnBeforeUnload对话框并将其替换为自己的对话框?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript如何覆盖OnBeforeUnload对话框并将其替换为自己的对话框?

您无法修改的默认对话框

onbeforeunload
,因此最好的选择是使用它。

window.onbeforeunload = function() {    return 'You have unsaved changes!';}

将字符串分配给window.event的returnValue属性时,将出现一个对话框,为用户提供保留在当前页面上并保留分配给它的字符串的选项。对话框中显示的默认语句“您确定要离开此页面吗?…按OK继续,或按Cancel保留在当前页面上。”无法删除或更改。

问题似乎是:

  1. onbeforeunload
    被调用时,它会采取的处理程序的返回值
    window.event.returnValue
  2. 然后它将返回值解析为字符串(除非它为null)。
  3. 由于
    false
    被解析为字符串,因此对话框将触发,然后传递适当的
    true
    /
    false

结果是,似乎没有一种分配

false
方法
onbeforeunload
来阻止它与默认对话。

jQuery的其他说明:

  • 在jQuery中设置事件 可能会 出现问题,因为这
    onbeforeunload
    也会导致其他事件发生。如果您只希望发生卸载事件,那么我会坚持使用普通的Javascript。
  • jQuery没有捷径,
    onbeforeunload
    因此您必须使用通用
    bind
    语法。
    $(window).bind('beforeunload', function() {} );

:自chrome-51起,onbeforeunload对话框中的自定义消息已弃用(cf:发行说明])



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415898.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号