2012-10-29 28 views
4

工作我使用它運行在Internet Explorer罰款,但沒有在Firefox工作下面的代碼。Ajax調用在Firefox中不工作 - 在IE

當用戶關閉瀏覽器,一個WebMethod必須調用,其更新數據庫位域IsLogin=false

window.onbeforeunload = function (e) { 

     var evt = window.event || e; 
     var y = evt.clientY || evt.pageY; 

     if (y < 0 || evt.clientX<0) { 
      $.ajax({ 
       type: "POST", 
       url: "/Application/WebForm1.aspx/Update", 
       async: false, 
       data: "{}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        alert('Sucessfull Call'); 
       } 

      }); 
     } 
    } 
+0

或許沒有可靠的方法來做到這一點這裏提到:http://stackoverflow.com/questions/2970782/javascript-wait-until-ajax-request-finishes-to-close-page – Dan

回答

0

您的web方法在FireFox中是否被調用?該HTML5 specification狀態調用提醒()可以在window.onbeforeunload事件中看到here爲Mozilla的響應被忽略。

另一種方法是返回一個確認框。這似乎在IE/FF/Chrome中運行良好。文檔仍然可見,並且可以取消該事件(如果需要)。

<script type="text/javascript"> 

    window.addEventListener("beforeunload", function (e) { 
     var confirmationMessage = "Sucessfull Call"; 

     (e || window.event).returnValue = confirmationMessage; 
     return confirmationMessage; 
    }); 
</script> 
相關問題