我正在使用以下代码关闭浏览器,当我们关闭浏览器时,浏览器会话将过期;从下面的代码,浏览器将按预期关闭,但如果单击“后退”按钮或输入地址url,则该会话将终止,并重定向到登录页面>
ASP.net项目 我已经尝试在关闭浏览器时使用onunload事件
<script type="text/javascript">
var clicked = false;
function CheckBrowser() {
if (clicked == false) {
//Browser closed
} else {
//redirected
clicked = false;
}
}
function bodyUnload() {
if (clicked == false)//browser is closed
{
var request = GetRequest();
request.open("GET", window.location.origin + "/" + window.location.pathname.split('/')[1] + "/Default.aspx", false);
request.send();
}
}
function GetRequest() {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
$(document).on('keydown', function (e) {
if (e.keyCode == 116 || (e.ctrlKey && e.keyCode == 82)) {
clicked = true; //shortcuts for F5 and CTRL+F5 and CTRL+R
}
}); </script> <body onunload="bodyUnload();" onclick="clicked=true;">
在Default.aspx页面中,我在页面加载事件中有清除会话
关闭浏览器时应清除浏览会话,但按此按钮不应该影响其他键,当前,如果我们按返回按钮或重新加载按钮,则浏览器会话将被清除,而无需在JavaScript中调用onunload事件。
谢谢。