100分给解答正确的人,其他兄弟姐妹分50分。
谢谢。万分渴望高手给出相应的代码!!!!!
如果没有理解错误的话!加个mouse点ji事件就是了!
body的onload的相反事件,叫什么unonload吧?试试,用js写
JS可以实现unonload
function window.onbeforeunload()
{
event.returnValue="确实要退出系统?";
}
function window.onunload()
{
LogoutOnline();
}
<body onUnload="alert(asdf)">
</body>
你可配合xmlhttp来实现关闭窗口时,执行其他的后台程序
<script language="javascript">
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
//在此处调用其他页面执行服务端事件
xmlhttp.open("GET", "xxx.aspx", false);
xmlhttp.send(null);
}
}
</script>
那么你可以在
<body onUnload="javascript:location.href=xxx.aspx;">
那么这个被打开的这个xxx.aspx页面用来执行你要做的服务端操作。。这个方法你可以考虑一下。
要在客户端调用服务端事件,没有直接的方法
onUnload="alert(asdf)
js
那么你可以在
<body onUnload="javascript:location.href=xxx.aspx;">
那么这个被打开的这个xxx.aspx页面用来执行你要做的服务端操作。。这个方法你可以考虑一下。
要在客户端调用服务端事件,没有直接的方法
那么你可以在
<body onUnload="javascript:location.href=xxx.aspx;">
xxx.aspx执行完了在redirect回来不就行了么?
客户端的:
<script language=javascript>
function page_unload() {
//函数体,例如打开窗口
window.open ( "http://www.abc.com", "名称", "width=800,height=600, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes, location=yes, status=yes");
}
</script>
<body onunload="page_unload()"></body>
public void close_clicked(object src,EventArgs e)
{
.......
}
客户端
帮你顶咯!我要说的楼上都说拉!
顶!!!
UP
<body onUnload="javascript:location.href=xxx.aspx;">
利用超级链接呀
这是客户端的事件,只能以js等脚本的形式来捕捉
真的没有相应的后台事件了吗????
只能通过这样完成吗??
---------
那是当然,关闭浏览器,是客户端行为,能够通过上述方式,在关闭的时候,执行其他页面,已经是非常好了.没有其他办法.
你可以在关闭窗口激发的事件中,打开一个新窗口,打开在-x,-y坐标的地方,别人是看不到的.
用来处理一些后台的事件,处理完后关闭.
但是如果别人禁止了新窗口,就没办法了
ICallbackEventHandler可以实现你要的东西
这个东西我在2.0中正使用,可能里面有些我处理的业务的东西,麻烦你自己分析一下吧
<%@ implements interface="System.Web.UI.ICallbackEventHandler"%>
<form runat="server"><asp:TextBox ID="usrid" runat="server"></asp:TextBox></form>
<script runat="server">
public void Page_Load(object Sender,EventArgs e){
if(Session["UserID"]!=null){
usrid.Text=((int)Session["UserID"]).ToString();
}
//Message.Mapping mm=new Message.Mapping();
//string result=mm.NewMessageCount(usrid.Text);
//Response.Write(result);
string bs=Page.GetCallbackEventReference(this,"arg","CallBack","ctx","ErrorBack");
StringBuilder sb=new StringBuilder();
sb.Append("function CallServer(arg,ctx){");
sb.Append(bs);
sb.Append("}");
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"CallServer",sb.ToString(),true);
}
public string RaiseCallbackEvent(string eventArgument){
Message.Mapping mm=new Message.Mapping();
string result=mm.NewMessageCount(eventArgument);
//string result="5";
return result;
}
</script>
<script language="javascript">
var callTimer;
function CallToServer(){
//alert("CallToServer!");
CallServer(document.getElementById("usrid").value);
return false;
}
function CallBack(result,context){
//alert(result);
if(result=="0")return;
if(result=="false"){
CallBackStop();
return;
}
msgBox=parent.document.getElementById("msgBox");
if(!msgBox){
alert("Message Content dont exist!");
CallBackStop();
return ;
}
//alert(msgBox.style.visibility);
if(msgBox.style.visibility=="hidden" || msgBox.style.visibility==""){
parent.msgShow(result);
}else{
msgCount=parent.document.getElementById("msgCount");
msgCount.innerText=result;
}
}
function ErrorBack(result,context){
alert("CallBacks work failure!");
CallBackStop();
}
function CallBackStop()
{
window.clearInterval(callTimer);
}
callTimer=window.setInterval("CallToServer()",10000);
</script>
<input type="button" onClick="CallToServer();" value="push it">
客户端js
还没说完呢
怎么捕捉关闭事件你是知道的,然后用客户端调用服务器端事件就行了,不需要重新请求页面
人这么多,我只好帮你顶了
study...
mark
为了分,顶一个
学习