Ir para conteúdo

POWERED BY:

Arquivado

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

brissolare

Script de Bloqueio PostBack

Recommended Posts

Fala Pessoal, eu tenho um scrit que me ajuda a bloquear de algumas formas a função de voltar do browser...ela tem as seguintes opções

 

1 - Bloqueia o botao direito do mouse

2 - Se o usuário tentar voltar pelo botao do browser - ele joga pra frente

3 - Bloqueia o backespace para voltar..quando o foco tá no browser...

 

Eu abro o site em uma janela popup...a funcao 2 é mais para quem colocar o endereço e digitar no browser...

 

O que acontece é que o script que bloqueia o backspace tambem não deixa utilizá-lo em campos input do tipo senha...nos outros inputs funciona normal..vou passar o código abaixo...obrigado

 

        var mensagem = "";
        function clickIE() { if (document.all) { (mensagem); return false; } }
        function clickNS(e) {
            if
          (document.layers || (document.getElementById && !document.all)) {
                if (e.which == 2 || e.which == 3) { (mensagem); return false; }
            }
        }
        if (document.layers)
        { document.captureEvents(Event.MOUSEDOWN); document.onmousedown = clickNS; }
        else { document.onmouseup = clickNS; document.oncontextmenu = clickIE; }
        document.oncontextmenu = new Function("return false")

        function sair() {

            window.opener.location.href = 'Default.aspx';
            window.close();
        }
        function preventBack() { window.history.forward(); }
        setTimeout("preventBack()", 10);
        window.onunload = function () { null };
        if (typeof window.event == 'undefined') {
            document.onkeypress = function (e) {
                var test_var = e.target.nodeName.toUpperCase();
                if (e.target.type) var test_type = e.target.type.toUpperCase();
                if ((test_var == 'INPUT' && test_type == 'TEXT') || test_var == 'TEXTAREA') {
                    return e.keyCode;
                } else if (e.keyCode == 8) {
                    e.preventDefault();
                }
            }
        } else {
            document.onkeydown = function () {
                var test_var = event.srcElement.tagName.toUpperCase();
                if (event.srcElement.type) var test_type = event.srcElement.type.toUpperCase();
                if ((test_var == 'INPUT' && test_type == 'TEXT') || test_var == 'TEXTAREA') {
                    return event.keyCode;
                } else if (event.keyCode == 8) {
                    event.returnValue = false;
                }
            }
        }

Esses scripts na verdade ajudam a bloquear o postback pois quero que o usuário navegue pelo site somente pelos links. Então se tivesse alguma opção de bloquar o voltar de vez...sem usar esses scripts que bloqueim mouse, teclado e etc....seria melhor...no script acima tem uma função que se usar o voltar ele joga para o site atual....o problema é que como é um site dinamico a funcao executa o history.back e joga "pra frente", isso faz com que a ultima ação seja executada novamente (insert no banco, select) e é isso que não quero que aconteça...

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se tem uma solução melhor

mas faça toda essa parte em ajax, aí ele não atualiza a "página", consequentemente não se habilita o botão voltar daí

 

se usar jquery fica mto facil

uma dica é usar a função .load() do jquery...

 

abraço

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.