当前位置:首页 > 占卜故事

在ASP.NET如何判断关闭浏览器?

没有办法直接捕获背景,但是您可以通过向页面添加以下脚本,在浏览器关闭时触发提交。

& lt脚本& gt

window.onunload=function(){

if(event . clientx & gt;客户宽度& amp& ampevent.clientY & lt0 || event.altKey) //如果关闭浏览器而不是刷新页面,

__doPostBack('closing ',' ');//触发提交。

}

& lt/script & gt;

然后可以在后台捕捉这个动作。

受保护的void Page_Load(对象发送方,EventArgs e)

{

if(请求["__EVENTTARGET"] == "关闭")

{

...最后的治疗...

回应。end();//因为是最后的处理,不需要页面输出,所以在这里执行就可以了。

}

...原始正常代码...

}

在某些情况下,页面不会自动生成__doPostBack函数或其相关控件(例如,当页面上只有一个按钮控件时),您可以在页面上手动添加以下代码:

& ltinput type = " hidden " name = " _ _ event target " id = " _ _ event target " value = " "/& gt;

& ltinput type = " hidden " name = " _ _ event argument " id = " _ _ event argument " value = " "/& gt;

& ltscript type = " text/JavaScript " & gt;

//& lt;![CDATA[

var the form = document . forms[' form 1 '];

如果(!前者){

the form = document . form 1;

}

function _ _ doPostBack(event target,eventArgument) {

如果(!the form . on submit | |(the form . on submit()!= false)) {

前者。_ _ event target . value = event target;

前者。_ _ event argument . value = event argument;

the form . submit();

}

}

//]]& gt;

& lt/script & gt;

上述方法没有用户通过任务管理器停止IE进程的任务方法。...

还有一个缺点:

1.只有当用户关闭浏览器时才会触发。如果是页面跳转,就不会被抓取。

2.当然,您也可以将脚本更改为

& lt脚本& gt

window . onunload = function(){ _ _ doPostBack(' closing ',' ');}

& lt/script & gt;

这样无论发生什么都会触发提交,但是问题更大,因为即使用户正常提交页面,比如点击页面上的一个按钮,也会触发这个事件!

3.解决方法是使用UpdatePanel,这样普通提交不会刷新页面,也不会触发window.onunload事件。但是还有一个问题,就是页面第一次跳转的时候(不管是后台控制还是之前的用户操作),页面会变成一个空白页。因为那个脚本强制页面刷新,跳转失败,后台捕捉到关闭参数,处理后终止输出,导致页面变成空白页。

4.还有一个解决后台控件跳转问题的方法。在此之前,前台用户是没有办法修改地址栏的,所以不想写详细。反正我也没找到完美的解决方案。

PS:上面的方法还有一个恶心的目的,就是把那句“回应。end();"移除后,用户可以永远离开你的页面(包括修改地址栏、点击收藏夹等。)除非关闭浏览器。

另外提供了解决方案,可以更好的实现页面关闭或者页面跳转后的处理,但是实现起来相对麻烦。就是用ajax作为“心跳”:当用户打开你的页面时,保存一个对应的时间戳和相关信息,以备页面关闭后处理时使用。在页面中添加一个时间触发器,每隔一段时间(比如8秒)用ajax提交一次,刷新用户对应的时间戳。(也可以在global的sessionstart中创建时间戳,用sessionid作为标识符进行刷新,这样就可以不局限于一个页面,只能在用户关闭所有打开你站点的窗口后触发,非常灵活。)此外,每隔一段时间(例如,20秒)使用一个线程来检查保存的时间戳。如果发现每个时间戳与当前系统时间的差值大于或等于阈值(例如20秒),则确定用户关闭了浏览器或跳转到了另一个地方。

乱七八糟。不知道你看得懂吗?

  • 在ASP.NET如何判断关闭浏览器?
  • 佛教为什么称文殊菩萨为文殊菩萨?
  • 一个人要遵从自己的内心。
  • “不怕瞪眼看金刚,就怕斜眼看菩萨”:心机深的人
  • 八字加一个漯河的罗
  • 2006年0.1.1 5: 30出生的人是谁?
  • 八字命理大全软件
  • 什么星座最好?
  • 2022年犯太岁的生肖动物有哪些?
  • 八字爷爷奶奶