在使用DWR实现即时点对点聊天和广播式聊天室的功能的时候,很多用户会陆陆续续的登入登出,但是为了聊天室的兼容性和友好性,咱们又不能阻止用户的关闭浏览器动作,强制让用户使用咱们的退出按钮,所以这个时候就需要监控onbeforeunload动作了。
目前onbeforeunload这个动作W3C没有将其列入标准,这个动作的实现是靠各个浏览器厂商的功能实现,目前支持这个动作的浏览器有IE,chrome,firefox等主流浏览器,opera目前不支持,故为了适应以上浏览器js代码如下:
window.onbeforeunload = exitService;
function exitService(e){
if($.browser.msie){//判断是否是IE系列浏览器
dwr.engine.setAsync(false);//将dwr的引擎设置为同步
CustomerServiceControll.unlogUser(userid,siteid);
}else{
var evt = e ? e : (window.event ? window.event : null);//适应火狐浏览器
dwr.engine.setAsync(false);//将dwr的引擎设置为同步
CustomerServiceControll.unlogUser(userid,siteid);
event.returnValue = "";
return "";//此处是为了适应chrome浏览器,其返回与IE和firefox不同
}
}