Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SID_SILVA

Detectar o Fechamento de Uma Janela

Recommended Posts

Ola Novamente amigos, eis que estou aqui novamente para variar.

 

Agora, gostaria de saber se e possivel se detectar o fechamento de uma janela.

Meu objetivo e gravar na base de dados, a hora em que uma janela foi fechada.

 

 

Muito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

É cara, assunto complicado. Via C# é impossível, isso é fato. Se tiver uma solução, é em javascript, quer que eu mande o tópico para a seção de javascript? Talvez lá eles possam te ajudar, eu já tentei fazer isso também mas não tive sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para relatar a experiência que tive com isso.

 

Tive problemas em um chat com essa questão do usuário fechar o browser.

 

Se a aplicação tiver a necessidade de controla quem está logado ou coisa do tipo, indico que você use timeout (não lembro o nome da função ao certo no javascript) para atualizar de tempos em tempos a página e ao mesmo tempo avisar que o browser está aberto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, voltando a esse assunto algum tempo depois.

 

Eu preciso gravar na base de dados o momento em que o usuario abre e fecha o browser, para determinar quanto tempo ele permaneceu dentro da aplicacao.

 

O momento inicial e quando ele efetua o login, dai eu gravo a data e a hora na base de dados, por fim se ele efetuar o logout, eu gravo a hora em que ele saiu do sistema, porem ele pode simplesmente fechar a janela.Dai a necessidade de se saber a que horas isso ocorreu.

 

 

Obrigado e um Abraco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o Oenning já disse, via C# é impossível. Mas é possível usando JS.

 

<body onunload="funcao()">

Compartilhar este post


Link para o post
Compartilhar em outros sites

DaniloTec, sua solução tem um problema.

Quando você clica em um botão que recarrega toda a pagina, o evento onunload do body é executado, então você não tem como saber se esse evento foi executado quando ele clicou em algum botão ou fez algum refresh, ou quando ele fechou o browser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como colocar lá no gloabl.asax.

Nunca fiz isso em ASP.NET, mas em ASP tem lá um "evento" para quando a sessão for destruída. Acho que é acionado quando o browser fechado.

 

edit:

 

 

iii nem rola...

 

Testei aqui e nem funcionou.

 

 

Porque precisa saber a hora em que a janela fechou? Não pode ser quando ela abriu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

DaniloTec, sua solução tem um problema.

Quando você clica em um botão que recarrega toda a pagina, o evento onunload do body é executado, então você não tem como saber se esse evento foi executado quando ele clicou em algum botão ou fez algum refresh, ou quando ele fechou o browser.

Verdade. Mas dá pra resolver isso passando uma variável como parâmetro e fazer um if. É um POG, mas dá certo. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sabe, é verdade, não tinha parado para pensar nessa possibilidade. Mas iria dar um trabalho do cão fazer todos os botões passarem esse parâmetro =(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por isso é uma POG, rs :)

Mas com JS dá pra resolver isso fácil. Eu fiz um plugin pra Jquery de ordenação de tabelas que era mais ou menos isso. Eu "roubava" o href do HTML e manipulava os parâmetros com o jquery.

Dá pra fazer isso com botões tmb. Dá um trabalhino, mas é o tipo de código que se faz uma vez só. hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.