sábado, 30 de julho de 2011

Setar posição do cursor com JavaScript

Neste post, quero compartilhar uma função que pode ser bem útil, trata-se de uma solução de como setar o cursor em um determinado ponto de um input text ou textarea. Esta função foi testada no Firefox, IE 7 e Chrome.

function setPosCursor(element, pos) {
    element.focus();
    if (typeof(element.setSelectionRange) != "undefined") {
        element.setSelectionRange(pos, pos);
    }
    else if (element.createTextRange) {
        var breaks = element.value.slice(0, pos).match(/\n/g);
        var endPoint = 0;
        if (breaks instanceof Array) {
            endPoint = -breaks.length;
        }
        var range = element.createTextRange(); 
        range.collapse(true); 
        range.moveStart("character", pos); 
        range.moveEnd("character", endPoint); 
        range.select(); 
    }
} 

Nenhum comentário: