Copie o código do código da seguinte forma:
// window.onunload () {alert ('É isso que você deseja fazer, faça -o depois de fechar a página da web!');
// function window.onBeforeUnload () {alert ('É isso que você deseja fazer, faça -o antes de fechar a página da web! ")}
função window.onunload () {
If (window.screenleft> = 10000 && window.screentop> = 10000) || event.altkey) {
alerta (window.screenleft+","+window.screentop);
// ação que precisa ser acionada quando o usuário precisa ser fechado normalmente
localização = 'handler1.ashx';
}
}
</script>
Handler1.ashx:
Copie o código do código da seguinte forma:
usando o sistema;
usando System.Collections.Gneric;
usando System.Linq;
usando System.Web;
usando System.Web.Services;
usando System.Web.SessionState;
namespace webApplication1
{{
/// <summary>
/// $ codeBeHindClassName $ resumo Descrição
/// </summary>
[WebService (namespace = "http://tempuri.org/")]
[WebServiceBinding (conformsto = wsiprofiles.basicprofile1_1)]
Handler de classe pública1: ihttphandler, IrequiressessionState
{{
Public void ProcessRequest (contexto httpContext)
{{
context.Response.ContentType = "Text/Plain";
context.Session.ABandon ();
context.Session.Clear ();
}
Public bool isreusable
{{
pegar
{{
Retornar falso;
}
}
}
}
explicar:
O formulário de membro geral de um membro estabelecerá uma sessão ou cookie após o login do membro e, em seguida, você precisa sair da conexão ou sair do novo novo novo novo. Quando os membros fecham diretamente a janela, uma série de saída envolvendo saída não acionou. E estes serão limpos até que a sessão do servidor expire.
Felizmente, finalmente encontrei o caminho para capturar usuários usando o Alt+F4, a barra de título, clique direito, clique duas vezes na barra de título e pressione o botão de fechamento diretamente. Obviamente, ele não pode ser capturado para a minimização na barra de tarefas.
Copie o código do código da seguinte forma:
<Script Language = "JavaScript">
<!-
função window.onunload () {
if (window.screenleft> = 10000 && window.screentop> = 10000) || event.altkey)
{{
// ação que precisa ser acionada quando o usuário precisa ser fechado normalmente
}
}
->
</script>
ilustrar:
Window.Screenlect = 10000 + largura da borda (2 × 2) = 10004
Window.screntop = 10000 + barra de ferramentas High + Title Bar High = 10097
Deve -se explicar que essas propriedades de coordenadas na tela no OnBeforeUnload são valores normais.
Screnleft: Obtenha a coordenada X do canto superior esquerdo da área do cliente do navegador em relação ao canto superior esquerdo da tela.
Screontop: Obtenha a coordenada Y do canto superior esquerdo da área do cliente do navegador em comparação com o canto superior esquerdo da tela.
Eu acho que um valor especial será gerado quando a janela for destruída. Em circunstâncias normais, o valor não excederá o valor.
O problema agora é que o uso do Window.Location no OnBeforeUnload pode normalmente enviar a solicitação ao URL especificado, mas o método não pode ser efetivamente executado no evento OnUnload. A solução é abrir uma nova janela para fechá -la.
Podemos escrever essas palavras em vez de uma série de janelas.location. Como os sites do portal envolvem vários servidores de sites de servidor cruzado. Depois de sair da entrada unificada, você precisa sair para obter o efeito esperado do portal.
var newwindow;
Window.opner = null;
newwindow = window.open (url, pagename, 'altura = 0, largura = 0');
newwindow.opner = null;
newwindow.close ();
Nympho
Este segmento do código foi testado. OnBeforeUnload é um evento em que a página será acionada antes da desinstalação.
A remoção de So So é essencialmente as páginas que fazem a função de saída diretamente abrindo a nova janela. Pode ser pausado por um ou dois segundos quando é chamado ou fechou a janela em uma página de saída especial. A página sai normalmente e corta de volta à página inicial.
[Nota] Se você não julgar na janela.onunload, acionará o evento se não julgar a página de atualização. Portanto, é necessário julgar e capturar operações específicas para bloquear algumas operações normais.
Contínuo: como limpar a sessão antes do usuário fechar a janela diretamente
Ontem, expliquei a implementação da implementação, mas em operação real, verificou -se que o atraso deve ser adicionado para garantir que o programa possa ser executado normalmente. Os detalhes da implementação estão anexados abaixo e uma função de atraso de tempo simples é anexada. O código foi testado.
Copie o código do código da seguinte forma:
<Script Language = "JavaScript">
Função window.onunload ()
{{
var newwindow;
if (window.screenleft> = 10000 && window.screentop> = 10000) || event.altkey)
{{
newwindow = window.open ('Endereço do programa de saída', 'Nome da página da web',
'largura = 0, altura = 0, superior = 4000, esquerda = 4000');
newwindow.opner = null;
Sono (5000);
newwindow.close ();
}
}
Função Sono (milissegundo)
{{
var currentDate, BEGINDATE = new Date ();
Var Beginhour, BeginMinute, Beginsegund, Beginms;
Var Hourgaps, MinuteGaps, SecondGaps, MSGAPS, GAPS;
BEGINHHOUR = BEGINDATE.GETHOUSE ();
BeginMinute = Begindate.getMinutes ();
BEGINESECOND = BEGINDATE.GETSECONDS ();
Beginms = Begindate.getMillisEconds ();
FAZER
{{
CurrentDate = new Date ();
hourgaps = currentDate.gethours () -BegInhour;
minuteGAs = currentDate.getminutes () -Beginminute;
SecondGaps = currentDate.getSeconds () -BegInsecond;
msGAPS = currentDate.getMillisEconds () -Beginms;
if (teatro <0) teatro+= 24;
GAPS = HEORGAPS*3600+ MINUSGAPS*60+ SecondGaps;
lacunas = lacunas*1000+msGAs;
} While (lacunas <milisEcond);
}
</script>
Segundo, quando a janela é carregada ou saiu, se você deseja atualizar o navegador, poderá operar o seguinte:
<script type = "text/javascript" idioma = "javascript">
Window.opent.document.location.reload ();
</script>
<boey somente = "Opener.Location.Reload ();"> Atualizar ao abrir a janela
<corpo onunload = "Opener.Location.Reload ();"> Atualizar