【问题标题】:chrome is not working as expected while unloading the page卸载页面时 chrome 无法按预期工作
【发布时间】:2013-11-30 10:09:04
【问题描述】:

我有一个订单页面,管理员可以在其中选择订单。选定的订单在使用 jquery 定期间隔后存储和更新在数据库中。如果在选择复选框后用户离开页面我想给他一个确认消息。这不适用于 chrome。因为 chrome onbeforeunload 事件需要返回字符串。它在卸载页面时阻止所有警报和确认框。我怎样才能获得用户是否想要留在页面上的操作(.. // 什么都不做)离开页面(//更新表格) 请帮忙

【问题讨论】:

    标签: javascript php jquery google-chrome


    【解决方案1】:
    <script>
    window.onbeforeunload = function(e) {
      //alert('Dialog text here.') Wrong//
      return 'Dialog text here.';
    };
    </script>
    

    应该这样写。根据MDN

    我尝试了不同的方法,最后我得到了这个:

    window.onbeforeunload = function(){
        setTimeout(function(){
            //do something
            alert('You stay!!')
        },500);
        return 'Dialog text here.';
    }
    

    【讨论】:

    • 感谢我尝试过的帮助。我不希望它返回一个我想显示确认框的字符串,所以我可能知道用户是否想留在页面上:(
    【解决方案2】:

    https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload 状态

    自 2011 年 5 月 25 日起,HTML5 规范规定在此事件期间可以忽略对 window.showModalDialog()、window.alert()、window.confirm() 和 window.prompt() 方法的调用。

    一旦用户选择离开页面,您将无法执行任何操作。在页面被导航离开之前,不能保证调用 AJAX 调用。所以如果用户确认离开,你就失去了他们。您可以更改警告以说服他们留下,并在离开前手动单击页面上的SaveConfirm 按钮。

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 2019-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多