0

我正在开发基本的 ASP.net 网站,当用户尝试离开页面时,我想执行服务器端功能。为此,我正在使用窗口的 onbeforeunload 事件。我的页面上有复选框,当用户选中此复选框时,我正在执行服务器端“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";
}
4

1 回答 1

0

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

我认为该链接中的以下代码是您正在寻找的。

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;
});
于 2013-05-09T20:01:51.473 回答