Asp.net 浏览器关闭事件
当用户直接关闭浏览器而不注销时,是否有javascript以外的其他选项来触发Session_End()事件。如果我一直检查客户端是否向服务器发出请求,因为我认为当用户关闭浏览器时,服务器不会收到任何请求。那么,如果可能的话,我该如何实施呢?此外,我是否可以始终检查用户是否正在查看我的任何页面,如果没有,我是否可以引发会话结束()事件?否,您无法检查用户正在做什么或何时关闭浏览器。 这显然会侵犯用户的用户和数据安全权利。此外,这种功能依赖于浏览器,因此很难实现,因为每个浏览器都有自己的界面和原理 您可以做的是用javascript实现一个函数,它每隔一分钟左右向服务器发送一个信号,告诉服务器用户仍然处于活动状态Asp.net 浏览器关闭事件,asp.net,Asp.net,当用户直接关闭浏览器而不注销时,是否有javascript以外的其他选项来触发Session_End()事件。如果我一直检查客户端是否向服务器发出请求,因为我认为当用户关闭浏览器时,服务器不会收到任何请求。那么,如果可能的话,我该如何实施呢?此外,我是否可以始终检查用户是否正在查看我的任何页面,如果没有,我是否可以引发会话结束()事件?否,您无法检查用户正在做什么或何时关闭浏览器。 这显然会侵犯用户的用户和数据安全权利。此外,这种功能依赖于浏览器,因此很难实现,因为每个浏览器都有自己的界面和原理
然后可以存储用户最后一个信号的时间。这样,如果您在最后一分钟左右没有收到信号,您就会看到用户处于非活动状态。hii javascript中有一个事件用于查找浏览器关闭事件 但它并不适用于所有浏览器 他们的做法就是一个例子
<HEAD>
<TITLE> TEST</TITLE>
</HEAD>
<script type="text/javascript">
javascript:window.history.forward(1);
var temp = true;
document.onkeydown = keyDownPress;
document.onmousedown = keyDownPress;
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
//alert(is_chrome);
if(is_chrome){
window.onbeforeunload = function(e) {
// confirmExit(e);
alert("1");
alert("2");
alert("3");
return "You are going to close?"; // you can make this dynamic, ofcourse...
}
}else{
window.onbeforeunload = confirmExit;
}
/*if (navigator.userAgent.indexOf('AppleWebKit') > -1) window.onbeforeunload = confirmExit;
else Event.observe(window, 'beforeunload', confirmExit);*/
/*
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
if(is_chrome){
window.onbeforeunload = function(e) {
confirmExit(e);
return "Are you sure you want to leave this page ?"; // you can make this dynamic, ofcourse...
};}else{
window.onbeforeunload = confirmExit;
}*/
/* if (window.addEventListener) { // all browsers except IE before version 9
window.addEventListener ("beforeunload", OnBeforeUnLoad, false);
}
else {
if (window.attachEvent) { // IE before version 9
window.attachEvent ("onbeforeunload", OnBeforeUnLoad);
}
}
*/
/* function(e){
if(temp==true ){
alert("You are going to close");
// return null;
}
}; */
function keyDownPress(e)
{
var evt = e || window.event;
var keyPressed = evt.which || evt.keyCode;
if (keyPressed==116) {
temp=false;
return false;
}
if(evt.button==2) {
alert("For security reasons, Right click has been disabled!");
return false;
}
}
function confirmExit(e){
// alert("ok ok ");
if(temp==true ){
alert("You are going to close");
}
}
试验
javascript:window.history.forward(1);
var-temp=true;
document.onkeydown=keyDownPress;
document.onmousedown=keyDownPress;
var是_chrome=navigator.userAgent.toLowerCase().indexOf('chrome')>-1;
//警报(是铬);
如果(是铬){
window.onbeforeunload=函数(e){
//证实(e);
警报(“1”);
警报(“2”);
警报(“3”);
返回“您将要关闭?”;//当然,您可以使其动态化。。。
}
}否则{
window.onbeforeunload=确认退出;
}
/*if(navigator.userAgent.indexOf('AppleWebKit')>-1)window.onbeforeunload=confirmExit;
观察(窗口“卸载前”,确认)*/
/*
var是_chrome=navigator.userAgent.toLowerCase().indexOf('chrome')>-1;
如果(是铬){
window.onbeforeunload=函数(e){
证实(e);
return“您确定要离开此页面吗?”;//当然,您可以使其动态化。。。
}其他的{
window.onbeforeunload=确认退出;
}*/
/*if(window.addEventListener){//除IE版本9之前的所有浏览器
window.addEventListener(“beforeunload”,OnBeforeUnLoad,false);
}
否则{
if(window.attachEvent){//IE版本9之前
window.attachEvent(“onbeforeunload”,onbeforeunload);
}
}
*/
/*职能(e){
如果(温度==真){
警报(“您将要关闭”);
//返回null;
}
}; */
功能键按下(e)
{
var evt=e | | window.event;
var keyPressed=evt.which | | evt.keyCode;
如果(按键==116){
温度=假;
返回false;
}
如果(evt.按钮==2){
警报(“出于安全原因,已禁用右键单击!”);
返回false;
}
}
函数证实(e){
//警报(“ok”);
如果(温度==真){
警报(“您将要关闭”);
}
}
这段代码在IE8、Mozilla FF8中运行良好
不在Google Chorme和FF 9上工作
请参见。由于我是asp.net的新用户,您能详细告诉我解决方案吗?请查看本教程:我看过您的教程,从中我可以从客户端向服务器发送请求。但是我想在服务器中实现一个函数,该函数在一个时间间隔内工作,检查是否连接了任何客户端,如果结果返回null,它将调用Session.advand()。我是asp.net新手。你能帮我写代码和详细描述吗?你不必这么做。会话将从ASP.NET自动关闭。每个会话都有一个预定义的生命周期,当它们到达生命周期结束时,将自动放弃。您可以在web.config中定义会话的寿命