【问题标题】:Cancelling onBeforeUnload with addEventListener使用 addEventListener 取消 onBeforeUnload
【发布时间】:2014-01-29 05:56:22
【问题描述】:

我正在尝试找出在使用不带 href 的链接时如何防止在 IE9+ 中触发 onBeforeUnload 事件。

我在这里设置了fiddle(对真实场景的简化测试),它几乎描述了我想要完成的任务。每当触发onBeforeUnload 时(因此,单击链接时),页面背景变为蓝色。使用attachEvent 时,我可以轻松地return false 来防止这种情况发生。但是当使用addEventListener 添加链接的点击事件时,return 语句没有任何区别。或多或少,我希望链接 4 的行为类似于链接 2。

是的,从链接更改为按钮将是一个解决方案。更改 onBeforeUnload 功能(例如将该代码作为点击功能的一部分)将是另一回事。但遗憾的是,我无法控制这些代码。

所以。当使用addEventListener 设置时,有什么方法可以阻止来自触发器onBeforeUnload 的链接上的点击事件?还是 MS 在从 attachEvent 迁移到 addEventListener 时消除了这种可能性,因为阻止用户导航离开页面通常是个坏主意?

【问题讨论】:

    标签: javascript internet-explorer addeventlistener onbeforeunload attachevent


    【解决方案1】:

    使用 addEventListener 时,您可以向侦听器函数添加参数。
    该参数将包含被触发的事件(您可以停止它)
    假设参数被称为事件,使用event.preventDefault()

    jsFiddle 为例

    【讨论】:

    • 天哪!你其实是对的。我确信我尝试了各种 e.preventDefault() 等。现在觉得有点傻。非常感谢,朋友!
    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 2012-01-06
    • 2014-02-27
    相关资源
    最近更新 更多