Как выйти из системы во время onbeforeunload / onunload, используя Javascript

<script type="text/javascript">

window.onbeforeunload=before;
window.onunload=after;

function before(evt)
{
   var message="If you continue, your session will be logged out!";
   if(typeof evt=="undefined"){
      evt=window.event;
   }
   if(evt){
      evt.returnValue=message;
   }
}

function after()
{
   var flex=document.${application}||window.${application};
   flex.unloadMethod(); //calls the flex class containing the "unloadMethod()" which
                        //calls the logout.jsp that does the actually dropping of credentials
}

</script>

Вот моя мысль: когда пользователь нажимает назад, обновляет или закрывает окно, появится стандартное всплывающее окно onbeforeunload вместе с текстом, расположенным в моей переменной сообщения. Затем, если пользователь нажмет «Отмена», событие onunload не будет выполнено, и пользователь останется на текущей странице. Но если пользователь нажимает Okay, то должно произойти событие onunload, которое затем выполняет мои классы выхода из системы.

Вот что происходит: всплывающее окно появляется при необходимости, и кнопка «Отмена» также работает. Но если пользователь нажимает «ОК», кажется, что событие onunload срабатывает слишком быстро, чтобы выполнить мои классы выхода из системы, потому что оно никогда не выходит из системы.

Я знаю, что мои классы выхода из системы работают, потому что, если я просто вызываю свой flex.unloadMethod в onbeforeunload, он отключает их.

Я исследовал это в течение недели, и кажется, что я близко, но я помещаю что-то в неправильное место. Если у вас есть какие-либо примеры или советы, это будет оценено.

Ответы на вопрос(1)

Ваш ответ на вопрос