none
Como saber se o usuário está saindo de uma página ASP? RRS feed

  • Pergunta

  • Preciso saber como eu consigo controlar o acesso há uma determinada página da minha aplicação. Ou seja, preciso saber quando o usuário sai dessa página, pois quando ele sair, preciso executar uma ação. 

    E ele tem a opção além de sair através do botão Retornar ou Salvar, ele pode selecionar os menus laterais e sair.


    Grata, Camila Lopes
    quinta-feira, 18 de agosto de 2011 12:57

Respostas

  • Você pode usar javaScript veja,

    no JS você terá o método onunload para descarregamento da página.

    A partir deste método você pode chamar o objeto XMLHttpRequest para enviar a informação que deseja para uma página ASP.

     

    Exemplo:

    A página que terá o descarregamento controlado deve conter:

     

    <head> 	
    <title>teste</title> 
    <script>
    function fecharPagina()
    { 
     //Cria a variavel com os comandos a serem enviados
     var comandos;
    	var now = new Date(); 
    	var hora = now.getTime();
    	comandos = "pagina=fechada&hora="+hora;
    	
    	// Objeto XMLHttpRequest
    	var xmlHTTP;
    	try{xmlHTTP = new XMLHttpRequest();}
    	catch (e){try{xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");}
    	catch (e){try{xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");}
    	catch (e){xmlHTTP = null;}
    	}}
    	
    	// Verifica o state do envio e o conteudo retornado
    	xmlHTTP.onreadystatechange = function(){
    		if(xmlHTTP.readyState == 4)
    		{ 	
    			var objDoc;
    			objDoc = xmlHTTP.responseText;	
    			alert(objDoc);
    				
    		}
    	}
    	
    	// Envia os comandos para a página ASP
    	xmlHTTP.open("GET","endereco.asp?"+comandos, true);
    	//xmlHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xmlHTTP.send(null);
    	return false;
    }
    </script>
    </head> 
    <!-- adiciona onunload no body para chamar a função no descarregamento-->
    <body onunload="fecharPagina()">
    </body>
    </html>


     

    dentro da página asp, no exemplo "endereco.asp" você executa o que deseja.

    No meu exemplo testei apenas com uma application alterando o valor

     

    <%
    if request("pagina")<>"" then
    application("teste")= request("hora")
    else
    'application("teste")="Nao"
    end if
    
    response.Write(application("teste"))
    %>
    
    


     

     


    • Marcado como Resposta CaLopes sexta-feira, 2 de setembro de 2011 11:47
    terça-feira, 23 de agosto de 2011 15:51