Перезаписать / переопределить предупреждение Javascript другим предупреждением

0

Вот моя функция Javascript ниже. Возможно ли, чтобы предупреждение перезаписало другое предупреждение. Например, предупреждение (сообщение); триггеры сначала, но если сеанс заканчивается, он вызывает предупреждение ("Истек срок действия сеанса. Вы будете перенаправлены на страницу входа") ;. Единственный способ увидеть второе предупреждение - щелкнуть ok в сообщении (сообщение). Возможно ли, чтобы второе предупреждение просто перезаписало первое предупреждение, если сеанс истекает, или любой другой способ сделать это.

<!-- Session Timeout Function-->
  <script language="javascript" type="text/javascript">
  var sessionTimeout = <%= Session.Timeout %>;
  var sessionTimeoutWarning = sessionTimeout - 1;
  var timeOnPageLoad = new Date();
  var warning = null;
  var timeout = null;

  if ( <% if (MasterPageTemplate.Classes.CmwSession.IsAuthenticated) Response.Write("1"); else Response.Write("0");  %> == 1)
  {
     //For warning
     warning = setTimeout('SessionWarning()', parseInt(sessionTimeoutWarning) * 60 * 1000);
     //To redirect to the welcome page
     timeout = setTimeout('RedirectToWelcomePage()',parseInt(sessionTimeout) * 60 * 1000);
   }
    //Session Warning
    function SessionWarning() {
        //minutes left for expiry
        var minutesForExpiry =  (parseInt(sessionTimeout) - parseInt(sessionTimeoutWarning));
        var message = "Your session will expire in another " + minutesForExpiry + 
        " minutes! Please Save the data before the session expires";
        alert(message);


        var currentTime = new Date();
        //time for expiry
        var timeForExpiry = timeOnPageLoad.setMinutes(timeOnPageLoad.getMinutes() + parseInt(sessionTimeout)); 

        //Current time is greater than the expiry time
        if(Date.parse(currentTime) > timeForExpiry)
        {
            alert("Session expired. You will be redirected to login page");
            window.location = "Default.aspx";
        }
        else
        {
           $.ajax({
                type: "POST",
                url: 'Default.aspx/PingSession',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                type: "POST",
                success: function (msg) {
                alert("Your session is now valid.")
                }
         });

         if (warning != null)
         {
            clearTimeout(warning);
            //For warning
            warning = setTimeout('SessionWarning()', parseInt(sessionTimeoutWarning) * 60 * 1000);
         }

         if(timeout != null)
         {
           clearTimeout(timeout);
           //To redirect to the welcome page
           timeout = setTimeout('RedirectToWelcomePage()',parseInt(sessionTimeout) * 60 * 1000);
         }
        }
    }

    //Session timeout
    function RedirectToWelcomePage(){
        alert("Session expired. You will be redirected to login page");
        window.location = "Default.aspx";
    }

Теги:

1 ответ

1

Это невозможно. После того, как он был открыт, у вас нет контроля над диалоговым окном. Поскольку этот ответ предполагает, что вы можете попробовать модальное диалоговое окно с использованием инфраструктуры пользовательского интерфейса: окно предупреждения Javascript close

  • 0
    это маршрут, о котором я думал, если это не сработало, но я хотел посмотреть, можно ли перезаписать окно предупреждения

Ещё вопросы

Сообщество Overcoder
Наверх
Меню