Ir para conteúdo

POWERED BY:

Arquivado

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

Luiz C. Dias

Como identificar click ou inibir os botões back forward do navegador?

Recommended Posts

Amigos,

 

Estou criando um site que utiliza "streaming" (áudio), e este permanece audível independente das páginas (iframes) navegadas.

A página principal(index) contém o título, o player e informações do áudio e os links para navegação pelas páginas (iframes) e abaixo disto, o local com o "iframe" onde as páginas são apresentadas. Esta página contém básicamente o título, player e os vários links e ocupa uns 15% da visibilidade da tela e o restante mais abaixo contém a "iframe" onde rola ás páginas com o restante.

 

Ocorre que fiz um sistema de "log" que registra o tempo e a ordem de navegação pelas diversas páginas (scripts processados na iframe), e ao final, "encerra/destroy" a "session", atualiza e fecha o "log". Inclusive se o usuário clicar no X do navegador ele executa a função de encerramento, o que intercepto com o evento onbeforeunload. Este log registra tudo perfeitamente se o usuário sair pelo link "Sair" ou se clicar no "X" do navegador, mas se usar os botões "voltar" e "avançar" do navegador, o Log fica errado motivo pelo qual preciso saber se existe algum método, evento etc. para identificar se os botões "forward" e/ou "back" quando forem clicados pelo usuário, e como seria feito isto.

 

Atualmente, o endereço que aparece no navegador é o do Index.php, ou seja, a página principal com o script do primeiro link carregado e permanece assim durante toda a navegação. Além disto, o uso dos botões back e forward permitem o carregamento dos scripts nas iframes, mas não na sequência esperada e o log não é atualizado.

 

Já pesquisei bastante na web e verificando no livro "JavaScript Guia do Programador" escrito pelo "Maujor", terceira impressão, na página 287 o objeto history e adiante os métodos back(), forward() e go() que permitem por javascript atuar sobre o conteúdo do history. Na web li sobre onpopState, history.pushState() e history.replaceState(), mas através dos exemplos ali contidos não consegui entender o suficiente para criar algo que me ajudasse a solucionar o problema. Observei também na Web vários comentários sob a incompatibilidade de alguns navegadores, principalmente o IE ao tratar este assunto, mas não sei precisar se trata-se de situação antiga ou se persistem atualmente. Talvez só fazendo os testes.

 

Creio que a solução para resolver a minha dúvida possa ser:

1 - Conseguir interceptar e identificar que ocorreu o click no botão black e/ou forward e tentar redirecionar a página para o script correto.

2 - Através do click nos links que acionam os scripts, atuar sobre o history de modo que ao acionar os botões black e forward sigam

para o script devido.

 

Estou testando no ambiente de desenvolvimento (EasyPhp) e não sei se em Produção (Servidor de hospedagem) o problema seria tratado de outro modo e não ocorreria conforme relatei, mas isto não poderei saber agora pois o site está em desenvolvimento e por isto não está ainda no momento de hospeda-lo.

 

O problema é que não tenho noção de como executar isto, ou seja, usar estes métodos, objetos e suas propriedades adequando-os para solucionar a minha dificuldade estando na necessidade de entender melhor o uso destes de forma a usa-los na minha aplicação.


Grato,

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.