Ir para conteúdo

POWERED BY:

Arquivado

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

imbertti

close window

Recommended Posts

Galera,Vocês sabem se existe algum javascript para quando a pessoa clicar na janela "fechar" do browser ele seja direcionado para outra página?É que eu fiz um chat que usa global.asa, porém ele não está expirando os usuários que fecham o browser, somente os que clicam no botão "sair do chat" que criei... este botão envia a pessoa para "exit.asp" e então a sessão é finalizada... se tivesse como ao fechar o browser enviar para "exit.asp" resolveria meu problem....valew galera!abrs,Henrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, é isso mesmo!

 

mas só deu um problema.... como é chat toda hora dá refresh automaticamente e o Unload é executado sei la porque.... teria como executar somente quando a janela fosse fechada mesmo?

 

no body

onUnload="fechaSessao()"

 

no head a função:

 

function fechaSessao() {

document.location.href="exit.asp"

}

 

 

abrs,

Henrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta com o código abaixo e daí tu retira a tag body do teu código.<script language="JavaScript"> if ( window.close ) { document.write( "<body onunload=fechaSessao()>" ); } else { document.write( "<body>" ); }</script>Não sei se funciona, não testei, mas acho que sim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, nao funcionou nao...

olha o q ele retornou no browser... ele não criou o <body>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

 

<script language="JavaScript">

function fechaSessao() {

document.location.href="exit.asp"

}

</script>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Untitled Document</title>

</head>

 

<script>if ( window.close ) {

document.write( "<body onunload=fechaSessao()>" );

} else {

document.write( "<body>" );

}</script>

 

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele vai criar internamente, quando executar o codigo, porém isso nao resolve seu problema...o site do Bradesco tem esse esquema, mas nao consegui descobrir como eles fazem para quando atualizar a pagina nao rodar o unload...quando fecha tudo bem, eu ja descobri, e é esta solução adotada aqui.quem souber também me diga, por favor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele vai criar internamente, quando executar o codigo, porém isso nao resolve seu problema...o site do Bradesco tem esse esquema, mas nao consegui descobrir como eles fazem para quando atualizar a pagina nao rodar o unload...quando fecha tudo bem, eu ja descobri, e é esta solução adotada aqui.quem souber também me diga, por favor...

Neste tópico http://www.imasters.com.br/forum/index.php?showtopic=108802uma pessoa fez uma sugestão para não dar o problema no refresh, porém eu não entendi..... ah, no site da bradesco eu não achei este esquema tb...valewHenrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hoje eu estou meio fraco nos pensamentos rs..mas uma dica rapida e sem frescuras.. é você usar frames.. um frame para todo o seu conteudo e um outro que não aparece na pagina... e nesse outro você coloca o onunload...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hoje eu estou meio fraco nos pensamentos rs..mas uma dica rapida e sem frescuras.. é você usar frames.. um frame para todo o seu conteudo e um outro que não aparece na pagina... e nesse outro você coloca o onunload...

E hoje eu to fraco de entender.... como assim um "um outro que não aparece na pagina"?valewHenrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

rs, igual redirecionadores...você deixa um frameset com 100% e o outro com 1% ou 0 (acho q funciona) ...ai você mudando ou nao a pagina.. ele não vai chamar a funcao.. pq a funcao vai estar no frame de 1%... ela so vai ser chamada quando você fechar a janela..

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas Lex, se voce apertar o botao Refresh do Browser, ele vai atualizar tudo.... esse é o problema... quem tiver conta no bradesco, tenta apertar o f5 depois que fizer logon.... nao vai fechar a sessao, somente se voce fechar o browser ele abre a janela para fechar sessao... e também, se por exemplo, uma pagina que nao tiver no cache e expirar quando voce fizer um back no browser, no bradesco ele fecha a janela e executa o fechassessao.... hehehedifícil!!!!!!!valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas o site do bradesco é feito em html puro?? acho que não...ele pode usar um esquema de antes de carregar a pagina perguntar se a sessão ainda esta ativa senão escreve que a sessão expirou ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa parte do bradesco é quando você coloca seus dados e submete,daí vai abrir em uma target _blank, é nessa janela que está a função, exiba o código fonte e faça os testes nela. Eu copiei o code e estou tentando alterar, funciona, mas ainda está com o problema do refresh, deve ser alguma outra função que bloqueie o onunload com refresh. Mas eu ainda não descobri.

Compartilhar este post


Link para o post
Compartilhar em outros sites

EU DESCOBRI !!!!!!!!!!!!!!!!!!!!!!!!! eu sou demais... hahahahahaha

 

procurem por window.screenLeft....

 

Easy!!!

Rapaz,

pesquisei no site da microsoft e não entendi como usou isso no nosso caso....

 

screenLeft Property Internet Development Index

 

--------------------------------------------------------------------------------

 

Retrieves the x-coordinate of the upper left-hand corner of the browser's client area, relative to the upper left-hand corner of the screen.

 

Syntax

 

[ iPos = ] window.screenLeft

 

Possible Values

 

iPos Integer that receives the x-coordinate, in pixels.

 

The property is read-only. The property has no default value.

 

Remarks

 

The client area consists of the browser window, exclusive of the caption bar, the window-sizing border, the menu bar, the toolbars, the scroll bars, and the status bars.

 

dá uma palhinha de como ficou teu código....

valeu

Henrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tb consegui pelo jeito dos frames... como o meu chat usa frames e somente o frame das conversas q dá reload automaticamente toda hora, então eu coloquei o scritp no unload do frameset principal.... ao fechar pelo X do browser fecha a sessão, e quando o cara dá reload no browser dá tipo aqueles avisos de Retry de form.... se o cara clicar sim aparece outro nome de usuário igual ao dele com um _1, hehehe http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

tipo joão, joão_1

 

mas acho q tá de bom tamanho :)

 

 

<HTML>

<HEAD>

<TITLE>Sala <%=Topic%></TITLE>

<script>

function fechaSessao() {

document.location.href="exit.asp"

}

</script>

</HEAD>

 

<frameset Framespacing="0" Border="0" Frameborder="0" rows="120,*" cols="*" onUnload="fechaSessao()">

<frame name="chattop" scrolling="no" marginwidth=8 marginheight=0 noresize src="chattop.asp?Topic=<%=Server.URLEncode(Topic)%>" >

<frameset marginwidth="0" merginheight="0" framespacing="0" Border="1" frameborder="1" rows="*,60" cols="*">

<frame name="meio" scrolling="yes" marginwidth=8 marginheight=0 noresize src="meio.asp">

<frame src="msg.asp" name="bottom" Marginwidth="0" Marginheight="0" Framespacing="0" Border="0" Frameborder="NO" scrolling=no>

</frameset>

 

</frameset>

<noframes>Seu Browser não aceita frame</noframes>

</HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

na funcao fechasessao(), faça um alert(window.screenleft);voces verao a diferenca quando fechar o browser e quando atualiza, ai faz um codigo para quando fechar....se voces nao conseguirem , eu posto o codigo completo... mas quero que voces pesquisem um pouco antes... heheheheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabricio, PELO AMOR DE DEUS, posta o codigo que você fez com esse screenleft e salva nossa pele. Eu não achei nada sobre esse comando e preciso resolver essa bronca de fechar a janela, já to me desesperando, faz essa caridade!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai ai....

 

ASP [/tr][tr]

<HTML>

<HEAD>

<script language="Javascript">

<!--

function FechaSessao()

{

alert(window.screenLeft);

if (window.screenLeft > 10003 || window.screenLeft < 0)

{

fs = window.open("fechasessao.asp", "fechasessao", "toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=0, screenX=0, screenY=0, left=0, top=0, width=200, height=200");

if (!fs.closed)

{

//abriu a pop-up, entao deixa fechar a janela

return true;

}

else

{

//nao abriu a pop-up, entao nao deixa fechar a janela e redireciona para pagina

window.location = "fechasessao.asp";

return false;

}

}

return true;

}

//-->

</script>

</HEAD>

<BODY onunload="return FechaSessao()">

voce vera que vai aparecer um valor quando voce fechar a janela e outro quando voce atualizar, ai voce usando um if dentro da funcao fecha para abrir a janela que fecha a sessao ou simplesmente nao faz nada porque é um refresh...

ok?

</BODY>

</HTML>

[/tr]

 

abracos.

 

 

ATENCAO, MODERADORES, esse é um bom script JScript, se quiserem pode colocar num lugar de codigo Prontos... ah, fui eu quem fez esse codigo, nao peguei de lugar nenhum.... heheheheh (nao querendo me gabar)...

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.