请问当客户端捕获浏览器关闭时,如何发送消息给服务器端?(高手请进)

时间:2022-11-12 09:18:12
背景
我们在做一个b/s的OA项目,其中公文流转有专门编辑word文档的页面,文档被一个用户编辑时是不能被其它用户编辑的,所以我们就得当文档编辑页面打开时,锁定次文档已经打开不再允许其它人编辑。当用户离开文档编辑页面解除对此文档的锁定。

现在锁定文档很容易,服务器端Page_Load事件就能实现,反过来解除文档的锁定,比较费劲。不仅要考虑服务器事件也必须考虑客户端事件,例如用户点击一个链接或关闭浏览器也算是离开编辑页面,想来想去只能从客户端判断,服务器也没法捕获。

请各位高手帮忙!!!!!谢了

14 个解决方案

#1


以前大家的解决方法是

在关闭之前打开一个新页!!

在 这个新面里处理!

#2


这种问题你可以搜一下!
很多!

我都回了好几次了!

#3


<script language="javascript">
function window.onunload()
{
  if(window.event.clientX < 0 && window.event.clientY < 0) 
  { 
     window.open("");
  } 
}
</script>

#4


可以借用VSS的check out 和check in方法,不要在Page_load中实现。

#5


<body onbeforunload="window.open('x.aspx')">
在x.aspx再进行关闭x.aspx

#6


<body onbeforeunload="window.open('x.aspx')">
在x.aspx再进行关闭x.aspx

#7


agree  with listhome(嗯,是时候改个有点个性的名了!!)

#8


这个和判断在线人数应该是同一类问题,没有好方法,楼上几位的方法中的弹出新窗口的方法对于一些屏蔽弹出窗口的浏览器或者机器死机之类的都没有办法处理

#9


httpXML

#10


你好 net_lover(孟子E章) 

可不可以说详细点?onbeforeunload和onunload有什么区别?请指教!谢了

#11


onunload
事件中处理

#12


或者干脆打个退出按钮
还有用户session过期也要解开锁定

#13


<script language="javascript">
function window.onunload()
{
if(window.event.clientX < 0 && window.event.clientY < 0) 
 {  
 window.open("log.aspx"); 
 } 
}
</script>
在log.aspx页面的page_load里面加上
Response.Write("<script Language=JavaScript>"); 
Response.Write("window.opener = 'xxx';window.close();");  
Response.Write("</script>");

#14


mark

#1


以前大家的解决方法是

在关闭之前打开一个新页!!

在 这个新面里处理!

#2


这种问题你可以搜一下!
很多!

我都回了好几次了!

#3


<script language="javascript">
function window.onunload()
{
  if(window.event.clientX < 0 && window.event.clientY < 0) 
  { 
     window.open("");
  } 
}
</script>

#4


可以借用VSS的check out 和check in方法,不要在Page_load中实现。

#5


<body onbeforunload="window.open('x.aspx')">
在x.aspx再进行关闭x.aspx

#6


<body onbeforeunload="window.open('x.aspx')">
在x.aspx再进行关闭x.aspx

#7


agree  with listhome(嗯,是时候改个有点个性的名了!!)

#8


这个和判断在线人数应该是同一类问题,没有好方法,楼上几位的方法中的弹出新窗口的方法对于一些屏蔽弹出窗口的浏览器或者机器死机之类的都没有办法处理

#9


httpXML

#10


你好 net_lover(孟子E章) 

可不可以说详细点?onbeforeunload和onunload有什么区别?请指教!谢了

#11


onunload
事件中处理

#12


或者干脆打个退出按钮
还有用户session过期也要解开锁定

#13


<script language="javascript">
function window.onunload()
{
if(window.event.clientX < 0 && window.event.clientY < 0) 
 {  
 window.open("log.aspx"); 
 } 
}
</script>
在log.aspx页面的page_load里面加上
Response.Write("<script Language=JavaScript>"); 
Response.Write("window.opener = 'xxx';window.close();");  
Response.Write("</script>");

#14


mark