Desativar "voltar página" em browser

Boa tarde galera.

Seguinte, queria saber como posso impedir que o usuário, em uma aplicação web, volte uma página usando o botão voltar do browser ou clicando com o botão direito e em voltar ou passando comandos javascript pela barra de endereços.

Sendo assim, eu queria forçar a utilização dos botões na página para a navegação.

Alguém sabe como faço isso??

To postando aqui pois não sei nem como procurar isso no google!!

Obrigado!

Boa Tarde.

Bom… pelo que eu saiba não tem como fazer isso no browser em si.

O que você teria que fazer é a sua aplicação abrir em uma popup.
Aí sim na abertura da popup você tem como retirar os botões, barra de url, etc…

http://www.w3schools.com/htmldom/met_win_open.asp

Valeu

Boa tarde haamilton.

Eu não quero desativat o botão do browser (e acho q nem tem como). Acho que me expressei mal!

Eu gostaria de que, quando o usuário clicar no botão voltar ou clicar com o botão direito e depois clicar em voltar ou digitar um javascript na barra de endereço para retornar à pagina anterior, minha aplicação não deixaria isso acontecer, ou seja, exibiria a mesma página (página atual) ou nem mudaria nada!!

Isso eu vou utilizar para forçar o usuário a utilizar apenas os botões que eu coloquei na página.
Eu já vi isso em alguns sites de bancos.

Alguém sabe como???

Dá uma olhada nessa URL…

http://www.google.com.br/#hl=pt-BR&source=hp&q=block+back+button+browser&btnG=Pesquisa+Google&meta=&aq=f&oq=block+back+button+browser&fp=211f9b3bfb78d2c3

Acredito que tenha algo que te ajude.

Abraço!

o internet banking do unibanco tem isso, ve se você consegue alguem que tenha conta lá e pede para acessar, só chupinhar o .js!

abs.

E ae karinha…, certinho?!

Eu acho q tenho uma solução meia boca, mas acho q vai rolar?

Inicialmente, se alguém dizer que é uma solução porca eu vou concordar…hehe, mas pra quem está cagado, oq é um pendo…hehe.

Vamos lá.

Faz assim:
1-)
Cria um hidden logo no topo da página, mantém o value dele vazio.
Bom, qndo o usuário clicar no botão, vc preenche o hidden com qlquer coisa e manda esse obj via post.
2-)
Bom, vc vai concordar que quando esse obj for pra outra página ele vai estar carregado certo?, blz, dai quem vem a porcalhada…rs.
3-)
Clicando no botão do browser pra voltar, vc não concorda que esse obj vai estar carregado!!!, ai que entra a validação.
No body, vc coloca um javascript no evento onLoad e verifica se tem alguma coisa nesse hidden.
Se ele estiver com o resultado igual ao q vc passou pra outra página, é pq ele clicou no botão do browser, dai vc dá um dispatcher ou redirect…sei lá…rs.
Se estiver vazio ou com outro valor, é q ele usou o botão da sua aplicação…
4-)Fim.

Eu penso q isso vai dar um trampo do caçete, mas pode te ajudar…rs.

Abs();

A regra mais básica para web developers é: o browser não é seu!
Se você quer desabilitar o botão de voltar, você não entende isso, e muito provavelmente vai incomodar o usuário.

Mas, de qualquer jeito, você pode usar o método forward() fazendo algumas gambiarras.

[quote=mcbarsotti]o internet banking do unibanco tem isso, ve se você consegue alguem que tenha conta lá e pede para acessar, só chupinhar o .js!

abs.[/quote]

Cara, aqueles JSs são violentos demais! Não da pra entender aquilo não. Hehehe!
Mas era bem isso mesmo que eu tava querendo, exatamente como o internet banking do unibanco!

Cara, não vai rolar usar gambi aqui. É um projeto comercial! :frowning:

Ainda estou procurando, mas nada ainda!!
Se alguém mais tiver alguma idéia!

Achei um esquema que é o seguinte:

Através de um PhaseListener eu expiro as páginas conforme eu caminho pela aplicação!!!

public void beforePhase(PhaseEvent event) {
        FacesContext facesContext = event.getFacesContext();
        HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
        response.addHeader("Pragma", "no-cache");
        response.addHeader("Cache-Control", "no-cache");
        response.addHeader("Cache-Control", "must-revalidate");
        response.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT"); // some date in the past
    }

Isso da certo no IE mas no Firefox não da certo!!

Ainda não tá legal!! Se alguém tiver uma solução melhor…ajuda muito!!

Ninguém tem uma outra solução??