如何在 JavaScript 中停用 beforeunload 事件侦听器

安德烈·克里斯托加·普拉马蒂亚

我正在尝试激活页面重新加载器阻止程序,并能够停用重新加载程序阻止程序。换句话说,当用户即将卸载/重新加载他们的页面时,我能够显示一个对话框,但我目前正在寻找一种方法,让用户在某个功能之后卸载/重新加载他们的页面而没有任何对话框或警告已被调用。

也许删除事件侦听器会有所帮助?

这是我正在使用的代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <button onclick="activateReloader()">activate</button>
    <button onclick="deactivateReloader()">deactivate</button>
    <script>
        function activateReloader() {
            window.addEventListener('beforeunload', function (e) {
                // Cancel the event
                e.preventDefault();
                // Chrome requires returnValue to be set
                e.returnValue = '';
            });
        }

        function deactivateReloader() {
            window.removeEventListener('beforeunload', function (e) {});
        }
    </script>
</body>

</html>
桑迪·吉福德

removeEventListener通过检查您传递给它的函数的引用来工作,并查看它之前是否由addEventListener. 这意味着如果您想稍后删除侦听器,则不能将其添加为匿名函数 - 您需要对其进行引用:

function onBeforeUnload(e) {
    // Cancel the event
    e.preventDefault();
    // Chrome requires returnValue to be set
    e.returnValue = '';
}

function activateReloader() {
    window.addEventListener('beforeunload', onBeforeUnload);
}

function deactivateReloader() {
    window.removeEventListener('beforeunload', onBeforeUnload);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除 iFrame 添加的 beforeunload 事件侦听器?

来自分类Dev

如何在Java或JavaScript中为事件侦听器提供对象池

来自分类Dev

如何简化 javascript 事件侦听器?

来自分类Dev

如何从JavaScript中的多个元素中删除事件侦听器?

来自分类Dev

如何防止在 vanilla javascript 中的事件侦听器中重复?

来自分类Dev

电子:删除beforeunload事件侦听器

来自分类Dev

如何将事件侦听器添加到JavaScript中的许多按钮?

来自分类Dev

如何为JavaScript中的任何对象实现事件侦听器

来自分类Dev

如何将事件侦听器添加到JavaScript中的许多按钮?

来自分类Dev

如何取消侦听器中的自定义 javascript 事件?

来自分类Dev

如何在Firebug中调试事件侦听器?

来自分类Dev

如何在EaselJS对象中删除事件侦听器

来自分类Dev

如何使 JavaScript 事件侦听器减少重复?

来自分类Dev

在Javascript中向对象添加事件侦听器

来自分类Dev

删除for循环javascript中的事件侦听器

来自分类Dev

如何从reactjs中的文档中删除事件侦听器

来自分类Dev

如何从第三方JavaScript跟踪和分析中删除或阻止事件侦听器?

来自分类Dev

如何使用事件侦听器单击功能使用 javascript 显示和隐藏数组中的图像

来自分类Dev

如何删除Aurelia中的事件侦听器?

来自分类Dev

如何在node.js事件侦听器中获取事件名称?

来自分类Dev

reactjs事件侦听器beforeunload添加但未删除

来自分类Dev

Javascript事件侦听器

来自分类Dev

如何在Firefox调试器中删除事件侦听器?

来自分类Dev

如何在<head>中的脚本标记中触发事件侦听器

来自分类Dev

如何在Polymer中的自定义元素属性中添加事件侦听器?

来自分类Dev

如何在 Scala.js 中的单击事件侦听器中检索标签名称?

来自分类Dev

如何从父级中删除jQuery事件侦听器而不删除类似的侦听器?

来自分类Dev

如何在Java中为事件侦听器模式创建并触发Consumers <T>的集合

来自分类Dev

如何在聚合物中的内容元素上设置单击事件侦听器?

Related 相关文章

  1. 1

    如何删除 iFrame 添加的 beforeunload 事件侦听器?

  2. 2

    如何在Java或JavaScript中为事件侦听器提供对象池

  3. 3

    如何简化 javascript 事件侦听器?

  4. 4

    如何从JavaScript中的多个元素中删除事件侦听器?

  5. 5

    如何防止在 vanilla javascript 中的事件侦听器中重复?

  6. 6

    电子:删除beforeunload事件侦听器

  7. 7

    如何将事件侦听器添加到JavaScript中的许多按钮?

  8. 8

    如何为JavaScript中的任何对象实现事件侦听器

  9. 9

    如何将事件侦听器添加到JavaScript中的许多按钮?

  10. 10

    如何取消侦听器中的自定义 javascript 事件?

  11. 11

    如何在Firebug中调试事件侦听器?

  12. 12

    如何在EaselJS对象中删除事件侦听器

  13. 13

    如何使 JavaScript 事件侦听器减少重复?

  14. 14

    在Javascript中向对象添加事件侦听器

  15. 15

    删除for循环javascript中的事件侦听器

  16. 16

    如何从reactjs中的文档中删除事件侦听器

  17. 17

    如何从第三方JavaScript跟踪和分析中删除或阻止事件侦听器?

  18. 18

    如何使用事件侦听器单击功能使用 javascript 显示和隐藏数组中的图像

  19. 19

    如何删除Aurelia中的事件侦听器?

  20. 20

    如何在node.js事件侦听器中获取事件名称?

  21. 21

    reactjs事件侦听器beforeunload添加但未删除

  22. 22

    Javascript事件侦听器

  23. 23

    如何在Firefox调试器中删除事件侦听器?

  24. 24

    如何在<head>中的脚本标记中触发事件侦听器

  25. 25

    如何在Polymer中的自定义元素属性中添加事件侦听器?

  26. 26

    如何在 Scala.js 中的单击事件侦听器中检索标签名称?

  27. 27

    如何从父级中删除jQuery事件侦听器而不删除类似的侦听器?

  28. 28

    如何在Java中为事件侦听器模式创建并触发Consumers <T>的集合

  29. 29

    如何在聚合物中的内容元素上设置单击事件侦听器?

热门标签

归档