Estoy tratando de implementar un javascript tiempo de la sesión a cabo emergente. Por favor me ayude.
Soy capaz de mostrar una ventana emergente primer tiempo, pero cuando hago clic en aceptar próxima vez emergente que está por venir en el próximo minuto.Para la prueba me dio 3 minutos de tiempo. Por favor ayudarme a resolver esto.Yo no soy capaz de restablecer el temporizador click con el ratón.

JS:

</head>
<body>
<div id="dialog" style="display:none;" title="Dialog Title">Your session is going to expire in 10min</div>
<script>
var lefttime=4;
var interval;
setTimeout( 'ShowTimeoutWarning();', 180000 );


function ShowTimeoutWarning()
{

$( "#dialog" ).dialog( "open" );
return false;

}

$("#dialog").dialog({
autoOpen: false,
dialogClass: "no-close",
position: 'center' ,
title: 'session',
draggable: false,
width : 300,
height : 200,
resizable : false,
modal : true,
buttons: [
    {
      text: "OK",
      click: function() {
        ShowTimeoutWarning();
        $( this ).dialog( "close" );
     
      }
    }
  ]
});

document.onkeyup=setTimeout( 'ShowTimeoutWarning();', 180000 );
document.onkeydown=setTimeout( 'ShowTimeoutWarning();', 180000 );
document.click=setTimeout

</script>

  • Puede que nos muestran un poco de código, html y javascript, por favor?
  • he añadido el código de ahora
InformationsquelleAutor george | 2015-07-24

3 Comentarios

  1. 1

    ¿Te refieres a algo como esto?

    Que usted necesita para establecer una variable a la setTimeout valor de retorno de modo que usted puede claro que el tiempo de espera antes de la configuración de otro.

    Javascript

    var timeoutID;
    resetTimeout();
    
    function resetTimeout(){
        if( timeoutID ) clearTimeout( timeoutID );
        timeoutID = setTimeout( ShowTimeoutWarning, 180000 );
    }
    
    
    function ShowTimeoutWarning() {
        $( "#dialog" ).dialog( "open" );
        return false;
    }
    
    
    $("#dialog").dialog({
        autoOpen: false,
        dialogClass: "no-close",
        position: 'center' ,
        title: 'session',
        draggable: false,
        width : 300,
        height : 200,
        resizable : false,
        modal : true,
        buttons: [{
            text: "OK",
            click: function() {
                ShowTimeoutWarning();
                $( this ).dialog( "close" ); 
            }
        }]
    });
    
    document.onkeyup   = resetTimeout;
    document.onkeydown = resetTimeout;
    document.onclick   = resetTimeout;
    • Gracias a Tom por su respuesta. es este código para restablecer el tiempo? documento.onkeyup = resetTimeout; el documento.onkeydown = resetTimeout; el documento.haga clic en = resetTimeout;
    • sí lo hará – aunque sólo he actualizado un poco, usted necesita onclick no click. Ahora debería funcionar bien. También he ahora añadido el resetTimeout() llamada al principio del código. Sin eso, el que no se establece hasta que el teclado/ratón se desencadenan los eventos.
    • Lo siento, no su trabajo. Yo no soy capaz de ver emergente incluso para una sola vez
    • Estás seguro? He comprobado el código en jsfiddle y parece que funciona para mí. ¿Has visto mis editar el comentario anterior diciendo que he actualizado el código para llamar a resetTimeout(); en la parte superior de la secuencia de comandos? Sin eso, no servirá de mucho.
    • He aquí una versión simplificada de la jsfiddle (jsfiddle.net/p754n85t/1) el uso de alertas en lugar de su diálogo script el cual tiene un tiempo de espera de 5 segundos.
    • Sí. Yo estaba usando su viejo código. Ahora vi u código actualizado con resetTimeout. Ahora se está trabajando muy bien.Gracias u
    • No hay problema – en ese caso, si quieres amabilidad de aceptar la respuesta como correcta, estaría muy agradecido 🙂
    • yo lo hice como respondió. pero puede ser demostrado una vez tengo algo de reputación.

  2. 0

    Por favor, encontrar a continuación el código. el tiempo es de 1 min. Antes de los 55 seg mensaje emergente vendrá

    es postabck:

        if (!this.IsPostBack)
        {
                Session["Reset"] = true;
                Configuration config =WebConfigurationManager.    OpenWebConfiguration("~/Web.Config");
                SessionStateSection section =(SessionStateSection) config.GetSection("system.web/sessionState");
    
                int timeout = (int)section.Timeout.TotalMinutes * 1000 * 60;
                Page.ClientScript.RegisterStartupScript(this.GetType(), "onLoad", "DisplaySessionTimeout(" + timeout + ")", true);             
            }

    Jquery & Mensaje emergente:

     <div id="ExpireConfirm_Submit">
    <table>
        <tr>
            <td style="width: 230px;">
                Your Session will expire in <span id="seconds"></span>&nbsp;seconds.<br />Do you
                want to logout?
            </td>
        </tr>
    </table>

    <script type="text/javascript">
     var sessionTimeout = "<%= Session.Timeout %>";
     function DisplaySessionTimeout(timeout) {
        var seconds = timeout / 1000;
        document.getElementsByName("seconds").innerHTML = seconds;
        setInterval(function () {
            seconds--;
            document.getElementById("seconds").innerHTML = seconds;
        }, 1000);
        setTimeout(function () {
            //Show Popup before 20 seconds of timeout.
            $("#ExpireConfirm_Submit").dialog({
                height: 200,
                width: 400,
                resizable: false,                
                modal: true,                
                title: "Session Expire Confirmation",                              
                open: function () {
                    $('p#id1').html(sessionTimeout);
                },
                buttons: {
                    "Yes": function () {                        
                        $(location).attr("href", "/Account/Logout").submit();
                        $(this).dialog("close");
                    },
                    "No": function () {                        
                        ResetSession();
                        $(this).dialog("close");
                    }
                }
            }).prev(".ui-dialog-titlebar").css("background", "red");
        }, timeout - 55 * 1000);
        setTimeout(function () {
            $(location).attr("href", "/Account/Logout").submit();
        }, timeout);
    };
    function ResetSession() {
        window.location = window.location.href;
    }    
    </script>

    Este es el mejor Ejemplo para mostrar la ventana de aviso antes de tiempo de espera de sesión

  3. 0

    Usted debe intentar este

    <script>
    $(document).ready(function () {
    
                    var time = 30 * 1000 * 60; //session timeout 30 min
                    var timeout;
                    var isLogout = false;
    
                    timeout = setTimeout(function() {
                        //Things you need to do
                            isLogout = true;
    
                    }, time);
    
                    $(document).on('click', function () {
                        if (!isLogout) {
                            clearTimeout(timeout);
                            timeout = setTimeout(function() {
                                //Things you need to do
                                 isLogout = true;
                            }, time);
                        }
                    });
                });
    </script>

Dejar respuesta

Please enter your comment!
Please enter your name here