在window onbeforeunload事件上调用web方法

本文关键字:调用 web 方法 事件 window onbeforeunload | 更新日期: 2023-09-27 18:13:04

我在基本的ASP.net网站工作,我想执行服务器端功能,当用户试图离开页面。为此,我使用窗口的onbeforeunload事件。我在我的页面上有复选框,当用户选中这个复选框时,我正在执行side"checkedchange事件"。问题是每当用户点击这个复选框我的web方法也被调用,这应该不被调用,因为只有回发是发生的,用户不离开我的页面。有谁能建议我在回发时避免web方法调用吗?我想执行web方法只在以下场景:1)当用户关闭浏览器时。2)点击"查找更多匹配"按钮,当用户进入搜索结果页面时,没有学校列表。3)当用户从浏览器的地址栏更改url时

aspx页面代码:

     function GetMessage() {
         var urlstring = document.URL;
         {
             PageMethods.Message( document.URL);
         }
     }
</script>

  Code on aspx.cs page
 [System.Web.Services.WebMethod]
public static void Message()
{
    string x="a";
}

在window onbeforeunload事件上调用web方法

这个链接应该包含您正在寻找的答案:如何捕获浏览器窗口关闭事件?

我认为下面的代码从该链接是你正在寻找的。

var inFormOrLink;
$('a').live('click', function() { inFormOrLink = true; });
$('form').bind('submit', function() { inFormOrLink = true; });
$(window).bind('beforeunload', function(eventObject) {
    var returnValue = undefined;
    if (! inFormOrLink) {
       //TODO: Execute some code before unload here
       //returnValue = "Message to display before the user leaves the page.";
    }
    eventObject.returnValue = returnValue;
    return returnValue;
});