Marcus Wittmann

Dicas de AnĂ¡lise e Desenvolvimento!

O DHTML e seus eventos. Bloquear Copy, Paste e Cut

O assunto que quero compartilhar hoje é algo bem simples, mais simples até do que eu imaginava.

Hoje tive que bloquear as funções de Copy, Paste e Cut de um Textbox (ou Input) e logo fui fazendo uma funçãozinha Javascript para fazer isso. O que eu não sabia, talvez por não aparecer no Intellisense do Visual Studio, era que o DHTML (que é uma junção das tecnologias HTML e javascript) disponibiliza muitas outras funções alem de onclick's e onkeydown's. Existem diversos eventos já prontos que seriam úteis em casos como o meu, por exemplo. É só colocar em seu código HTML (Na sua página asp, aspx, etc) e pronto!

Vou colocar abaixo as duas maneiras de se fazer o tratamento de Copiar/Colar. Via função JavaScript (utilizando outros eventos DHTML's) e via DHTML com as funções prontas.

Via Javascript:

<script type="text/javascript">    
       
    function BloquearCopyPaste(e) {       
        var teclasBloqueadas = new Array('c', 'x', 'v');
        var keyCode = (e.keyCode) ? e.keyCode : e.which;
        var isCtrl;

        if (window.event)
            isCtrl = e.ctrlKey
        else
            isCtrl = (window.Event) ? ((e.modifiers & Event.CTRL_MASK) == Event.CTRL_MASK) : false;

        if (isCtrl) {
            for (i = 0; i < teclasBloqueadas.length; i++) {
                if (teclasBloqueadas[i] == String.fromCharCode(keyCode).toLowerCase()) {
                    alert('Ctrl+C, Ctrl+V e Ctrl+X bloqueados');
                    return false;
                }
            }
        }
        return true;
    }
   
     function BloquearBotaoDireito(e) {
        var isRight = (e.button) ? (e.button == 2) : (e.which == 3);
       
        if(isRight) {
            alert('Botão direito do mouse bloqueado!');
            return false;
        }
        return true;
    }
   
</script>

E no input teriamos algo parecido com isso:

<input type="text" onkeydown="return BloquearCopyPaste(event)" onmousedown="return BloquearBotaoDireito(event);" />

 

Via eventos DHTML:

<input type="text" onCopy="return false;" onPaste="return false;" onCut="return false;" />

 

Fica aí a dica. Vale a pena dar uma olhadinha na lista dos eventos DHTML antes de sair fazendo suas funções javascript!

Um abraço e até o próximo post!


Tags:
Categories: .Net Framework | Asp.Net
Permalink | Comments (580) | Post RSSRSS comment feed