• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

oceanus

detectar close do browser

9 mensagens neste tópico

Boas,

Alguem sabe uma forma de eu detectar que o utilizador fechou o browser no ie7?

Neste momento consigo detectar se o utilizador fechar o browser no X. mas se fechar no tab não consigo.

                    function Fechar

{

var browserWindowWidth = 0;

var browserWindowHeight = 0;

// gets the width and height of the browser window

if (parseInt(navigator.appVersion) > 3)

{

if (navigator.appName == "Netscape")

{

browserWindowWidth = window.innerWidth;

browserWindowHeight = window.innerHeight;

}

if (navigator.appName.indexOf("Microsoft") !=- 1)

{

browserWindowWidth = top.window.document.body.offsetWidth;

browserWindowHeight = top.window.document.body.offsetHeight;

}

}

return (event.clientY < 0 && event.screenX > (browserWindowWidth - 25)) ? true : false;

}

Com o seguinte if consigo detectar tambem a fechar o browser, só que quando navego para outra página ele assume que estou a fechar o browser, coisa que não quero.

if (window.event.clientY < 0 && (window.event.clientX > (document.documentElement.clientWidth - 5) || window.event.clientX < 15) )

Alguem sabe uma forma de resolver o problema??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais vale chamares uma função no onunload.

<body onunload="func()">

ou

window.unload = func

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se não me engano o unload é chamado também quando mudas de página e não só quando fechas o browser

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A única coisa que podes fazer, já te foi dito, mas tem os seus "problemas". Detectar se o browser foi fechado não é possível. Se estás a dar a ordem de terminar o processo do browser, como é que queres que este mande essa informação para o cliente? Ou mandas informação para o cliente ou terminas o processo, as duas coisas são incompatíveis.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

oceanus, posso saber qual é o objectivo final? (para te poder ajudar melhor)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu quero detectar o fechar do browser para atraves de ajax avisar o servidor que o cliente foi fechado. Isso é possivel e aliás funciona. o problema é que com o i7 sao suportados varios tabs no mesmo browser...

O objectivo final é o servidor terminar a sessao.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes fazer ao contrário, fazes um requeste a um script que te permite ter a sessõa iniciada, se esse requeste não acontecer passado x tempo a sessão é fechada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu quero detectar o fechar do browser para atraves de ajax avisar o servidor que o cliente foi fechado. Isso é possivel e aliás funciona. o problema é que com o i7 sao suportados varios tabs no mesmo browser...

O objectivo final é o servidor terminar a sessao.

Em qualquer browser moderno são suportadas tabs

Podes fazer ao contrário, fazes um requeste a um script que te permite ter a sessõa iniciada, se esse requeste não acontecer passado x tempo a sessão é fechada.

Alias esse é o metodo normal, a sessão ter um prazo definido, ao fim desse prazo a sessão expira e o utilizador tem que fazer novo login

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora