【问题标题】:Preventing onbeforeunload dialogs in IE9在 IE9 中防止 onbeforeunload 对话框
【发布时间】:2012-04-16 15:52:19
【问题描述】:

我在 IE9 中遇到了 onbeforeunload 问题——当下面的代码运行时,它反复弹出一个对话框,询问您是要留下还是离开页面。

我修改了我的代码以防止基于this thread 的默认功能无济于事。

对此的任何帮助将不胜感激。

代码示例:

window.onbeforeunload = function(e) {
    e.preventDefault();
    e.returnValue = false;
    saveFormData();
    return null;
}

function saveFormData() {
    $.post("<?php echo site_url('resume/cleanup'); ?>", { resume_id: "<?php echo $this->session->userdata('resume_id'); ?>" } );
}

【问题讨论】:

    标签: javascript jquery internet-explorer-9


    【解决方案1】:

    您无法在页面卸载时发送 AJAX 请求,因为大多数浏览器都会阻止它。如果有脏数据,您应该要求用户留在页面上。这就是你应该从你的 onbeforeunload 处理程序中做的所有事情

    在不调用 $.post 的情况下尝试您的代码,它的行为应该符合预期

    【讨论】:

      【解决方案2】:

      onbeforeunload 处理程序中唯一允许您做的事情就是显示一个对话框。您特别没有有任何额外的时间来执行可能需要时间才能完成的任务,例如触发 HTTP 请求 - 用户要求离开您的网站;除了礼貌地询问他们是否想留下之外,你不能让他们留下(即使在你打扫卫生的时候)。

      https://developer.mozilla.org/en/DOM/window.onbeforeunload

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-25
        • 2011-06-04
        • 2015-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多