Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Existe alguma forma de cancelar a execução do onunload ou do onbeforeunload?
já tentei até dar um throw exception para ver se para, mas não deu certo.
Alguem tem alguma sugestão??
silverfox
O que eu quero é bloquear que o usuário saia da minha página, a não ser que ele clique em um botão de logout.
Qualquer outra tentativa de sair(clicando no "X" ou digitando outra URL) eu quero mostrar um alert informando que ele precisa clicar no botão de logout.
A sim, agora você deixou claro.
Amigo não há nenhuma segurança nisso, se ocorrer algum problema no PC ou o usuario usar Ctrl+Alt+DEL e finalizar o navegador ele vai fechar tranquilamente, o bom é você criar SESSÕES que durem no maximo meia hora e quando o usuario PAGINAR ou atualzar a pagina esta SESSAO seja renovada.
Você esta usando PHP???
Atenciosamente Silverfox.
A idéia do meu projeto seria que ele atue como um portal web da minha empresa, explico melhor, a pessoa acessaria o meu site e entraria com usuário e senha, atravéz de php eu daria as permissões e restriçoes de acesso no proxy para esta pessoa(essas permissões estão gravadas em um banco de dados).
A partir deste momento eu liberaria a navegação, mas quero manter uma barra de ferramentas da empresa na parte superior do site, com links institucionais, acesso ao instant message da empresa e algumas outras funcionalidades que podem vir a ser útil no futuro.
Esta página seria uma página normal, com um div fixo na parte superior para a barra de ferramentas da empresa, mas com um iframe onde ocorreria a navegação do usuário propriamente dita
Ocorre um problema, eu tenho que evitar que a pessoa digite uma outra url e/ou algum site tente mudar a url, pq neste caso sairia da minha página. Minha idéia para facilitar a vida do usuário seria usar o evento onbeforeunload() ou onunload() para "pegar" esta página que está querendo "acessar", exibi-la no iframe da navegação e interromper o onbeforeunload() ou o unload() para não mostrar o popup de confirmação nem sair da minha página.
Para finalizar a navegação teria um botão logout que removeria as permissões e restrições do proxy.
Eu estou ciente que o usuário pode fechar o navegador pelo taskmanager, ou se quiser o famoso "dedo-on_dedo-off", neste caso, se o usuário fechar o navegador "à força" e abri-lo novamente, ele teria no máximo 5 minutos de navegacao livre porque depois deste tempo a sessão expiraria e seria removida as permissoes e restrições do proxy
O conceito do meu projeto é este, por isso que eu perguntei como cancelar ou interromper o onbeforeunload ou onunload. Se tiver alguma outra idéia ou alternativa, ficarei grato
Quanto o usuário abrir uma outra janela, não tem problema nenhum porque o proxy que irá bloquear o que ele pode ou não navegar, mas eu preciso que pelo menos o navegador "pai" fique com a barra institucional para manter a sessão ativa.
Não sei bem ao certo o que você quer mas acredito que seja isso:
Se não for tente ser mais especifico, mostre seu codigo, de preferencia uma pagina em um host para analizarmos