Ir para conteúdo
Fórum Script Brasil
  • 0

onunload sem considerar o refresh


charlesacg

Pergunta

Olá amigos, tudo bem?

Estou precisando vazer uma validação quando o usuário fecha o browser.

Pra isso tentei usar o onunload, porém, ele tambem é chamado quando ocorre um refresh.

alguém saberia me dizer como faço pra desconsiderar o refresh?

Ou então se há outra forma de realizar esse tipo de validação?

(em alguns sites achei referência ao evento onclose, mas pelo que vi não funciona).

Muito obrigado!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Vamos, lá já me deparei com um problema deste e busquei algumas coisas, porem no decorrer do projeto ví que não era mais nescessario e não desenvolvi uma solução.

Mas vamos tentar resolver, posso te dar algumas idéais, porem não entendo muito de Javascript mas vamos tentar.

A idéia, não está completa

Uma função onload executa a função se a pagina já estava aberta antes e assim agent consegue contar se é refresh ou não.

bom para isso se cria um input hidden com valor nulo

<script type="text/jacascript">

function verificaRefresh()
{
 if( document.Fromulario.visitada.value == " " )
                document.Fromulario.visitada.value = "1";
//foi aberta a primeira vez, e adiciona como visitada

else
//Pagina veio de um refresh

}
</script>
no body
<from id="Fomulario" name="Formulario">
<input type="hidden" id="visitado" mane="visitado" />

</form>

OBS: Esse codigo não é meu, eu lembro dele de algum site porem não lembro o site.

Cara no momento estou sem um pouco de tempo, irei pensar em outra solição.

Assim vamos pensar amis, já sabemos como identificar se uma pagina veiod e um refresh ou de abriu agora.

Link para o comentário
Compartilhar em outros sites

  • 0
Ola!

Tambem encontrei esse codigo num dos sites que pesquisei...

To tentando solucionar meu problema com algo parecido com isso.

Parece que vai funcionar....

Obrigado por ter respondido!!!

Abraço,

Charles.

Cara pensei mais um pouco aqui e fiz uma gambiarra..........

Bom é o seguinte, caso a pessoa vá com o mouse para fora da janela (para apertar o refresh) ele não executa o unload

Caso seja digitado F5 ou Ctrl + R ele tambem desabilita o unload.

Caso contrario o unload é executado

Só que tem algumas falhas, caso a janela não esteja maximizada, dependendo do caminho do moude o botão [X] fechar não dispara o unload

ou a pessoa consegue apertar o refresh se o mouse vier por cima.

Outra coisa que acontece é que quando a janela é minimizada e depois maximizada e o mouse não passar por dentro da pagina ele habilita o unloas com o botão refresh

mas vamos tentar melhorar.............mas é bem gambiarra

<html>

<head><title>Testes</title>

<script language="JavaScript" type="text/javascript">

<!--

var ativa_unload = 1

function MouseY()

{

var Y = event.clientY;

var X = event.clientX

if(Y<=10 || X<=10)

{

desabilitaUnload();

}

else abilitaUnload();

}

function VerificaRefresh()

{

if(event.keyCode == 116 || (event.ctrlKey && event.keyCode == 82))

{

desabilitaUnload();

}

}

function desabilitaUnload()

{

ativa_unload = 0;

}

function abilitaUnload()

{

ativa_unload = 1;

}

function Unload()

{

if(ativa_unload==1)

{

window.alert("Unload OK");

}

}

//-->

</script>

</head>

<body onKeyDown="VerificaRefresh()" onMouseMove="MouseY()" onUnload="Unload()">

Teste

</body>

</html>

Tá chegando perto

EDITADO:

Pensando melhor!....ficou com MUITAS falhas...rsrsrs........vamu tantar a idéa anerios, mas tah dificil

Editado por invent
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...