Как обнаружить событие закрытия страницы с ASP.NET
У меня есть веб-приложение ASP.NET с мастер-страницей и страницей содержимого из мастер-страницы, когда я нажимаю MenuItem
открыть новую страницу aspx. если я хочу закрыть вкладку браузера новой страницы, я хочу показать всплывающее окно или диалог, который предупреждает пользователя о том, что он закрывает вкладку браузера. Я не знаю, как обнаружить кнопку закрытия браузера. Я использовал следующий код на новой странице aspx:
<script type="text/javascript">
function CloseWindow() {
alert('closing');
window.close();
}
</script>
новый код страницы позади:
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
}
Спасибо в Преимущество.
5 ответов
Это работает отлично.
JavaScript обнаруживает браузер закрыть вкладку / закрыть браузер
<body onbeforeunload="ConfirmClose()" onunload="HandleOnClose()">
var myclose = false;
function ConfirmClose()
{
if (event.clientY < 0)
{
event.returnValue = 'You have closed the browser. Do you want to logout from your application?';
setTimeout('myclose=false',10);
myclose=true;
}
}
function HandleOnClose()
{
if (myclose==true)
{
//the url of your logout page which invalidate session on logout
location.replace('/contextpath/j_spring_security_logout') ;
}
}
У меня было много проблем с этим самим, и единственное, что работает, это событие "window.onbeforeunload" из javascripts, но проблема в том, что это выполняется намного больше, чем вы ожидаете. В общем, если вы работаете с главной страницей и т.д., я не думаю, что это можно сделать.
Я думаю, что лучше всего вы пытаетесь подходить к этому по-другому, потому что в противном случае ваше заключительное сообщение будет появляться часто.
Если я вас правильно понял, вы хотите знать, когда вкладка / окно эффективно закрывается. Ну, на самом деле, единственный способ в Javascript обнаруживать подобные вещи - это события onunload и onbeforeunload. Эти события также запускаются, когда вы покидаете сайт по ссылке или в браузере назад. Так что это лучший ответ, который я могу дать, я не думаю, что вы можете непосредственно определить чистое закрытие в Javascript. Поправьте меня, если я не прав здесь. Вы можете пройти через браузер-вкладка-закрытие-обнаружения-используя-javascript-или-любой-другой-язык
Вы можете справиться с этим с помощью JavaScript на вашей странице.
Сначала создайте функцию:
function closeMessage() {
return "Are you sure you want to leave this page";
}
После этого назначьте этот метод:
window.onbeforeunload = closeMessage;
Пожалуйста, дайте мне знать, если это было полезно
Вам нужно поймать событие для закрытия браузера и использовать его, чтобы делать все, что вы хотите. Вот код, который работал для меня.
<script type="text/javascript">
window.onbeforeunload = function (e) {
var e = e || window.event;
if (e) e.returnValue = 'Browser is being closed, is it okay?';//for IE & Firefox
return 'Browser is being closed, is it okay?';// for Safari and Chrome
};
</script>
Надеюсь это поможет..