离开页面时弹出Js,但在提交表单时不弹出

时间:2015-09-19 10:19:25

标签: javascript popup

我在我的网站上使用此代码,当用户试图离开页面时,会在弹出窗口中显示警告消息:

--privileged

但是,这是在带有表单的页面上。当用户提交表单时,弹出窗口显示没有意义。如何修改此代码,以便仅在用户以各种可能的方式离开页面时关闭弹出窗口(关闭选项卡,单击站点徽标,刷新页面),而不是在提交表单时?

1 个答案:

答案 0 :(得分:3)

我建议捕获表单的提交事件,然后从confirmExit事件绑定中删除onbeforeunload函数或设置一个标志以指示可以提交页面。例如:

<script type="text/javascript">

    // Define flag to determine if the page can be left without confirmation
    var safeToLeave = false;

    // Handle user leaving the page
    function handleExit () {
        if (!safeToLeave) {
            return 'Si vous quittez ou actualisez la page, vous perdrez votre tutoriel';
        }
    }

    // Handle the user submitting the page form
    function handleSubmission() {
        safeToLeave = true;
    }

    // Bind to on evemts
    window.onbeforeunload = handleExit;
    document.getElementById('#my-form').onsubmit = handleSubmission;

</script>

我建议您考虑使用addEventListener方法来绑定事件,但是考虑到您的示例,我试图保持我的答案一致。