关闭浏览器的警报

时间:2012-10-18 04:57:53

标签: c# javascript asp.net ajax javascript-events

当我关闭浏览器时,我必须执行一些服务器端功能。

如果在执行服务器端功能时发生任何异常,我必须显示警告消息“Operation Unsuccessful”,在这种情况下,浏览器不应该关闭。

4 个答案:

答案 0 :(得分:1)

实际上,您可以阻止用户关闭窗口。 但是你可以用你的消息提醒他/她,要求用户留下或离开页面, 这是通过绑定到onbeforeunload事件来完成的。

var showAlert = false;
window.onbeforeunload = function(){
    $.ajax({
       url: "serversideprcess.aspx",
       async : false
       }).done(function ( data ) {
        if(data !="success") 
           showAlert = true;
      }).fail(function(){
    showAlert = true;
    });

    if(showAlert){
       return "Operation unsuccessful";
    }
}

ajax请求必须是同步的:async : false

答案 1 :(得分:1)

你不能。

您根本无法阻止浏览器窗口关闭。永远。你也不能在onbeforeunload处理程序中执行任何花费时间(如HTTP请求)的工作 - 你真正被允许做的就是显示一个确认对话框。

答案 2 :(得分:0)

也许您可以使用此代码

<html>
<head>
<script type="text/javascript">
  var hook = true;
  window.onbeforeunload = function() {
    if (hook) {
      return "Did you save your stuff?"
    }
  }
  function unhook() {
    hook=false;
  }
 </script>
</head>
<body>

<a href="http://google.com">external link</a>


</body>
</html>

答案 3 :(得分:0)

window.onbeforeunload = WindowCloseHanlder;
function WindowCloseHanlder() {
    //Call ajax server code CallIntiateAjaxCalling();
    if (conditionfails) {
        alert("condition fails")
            return false;
    }
}