在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";
}
这个链接应该包含您正在寻找的答案:如何捕获浏览器窗口关闭事件?
我认为下面的代码从该链接是你正在寻找的。
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;
});