我在基本的ASP.net网站上工作,我想在用户试图离开页面时执行服务器端功能。为此我使用窗口的onbeforeunload事件。我的页面上有复选框,当用户选中此复选框时,我正在执行sverside“checkedchange事件”。问题是每当用户点击此复选框时,我的Web方法也会被调用,不应该调用,因为只有回发发生,用户不会离开我的页面。任何人都可以建议我在回发发生时避免使用Web方法调用。 我只想在以下场景中执行web方法: 1)当用户关闭浏览器时。 2)点击“查找更多匹配”按钮,当用户登陆搜索结果页面时没有列出学校。 3)当用户从浏览器的地址栏更改网址时
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";
}
答案 0 :(得分:0)
此链接应该包含您要查找的答案:How to capture the browser window close event?
我认为该链接的以下代码是您正在寻找的。
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;
});