2011-02-28 5 views

Répondre

0

Le descision est pas si simple et requieres grande quantité de code javascript. Donc, finalement je l'ai utilisé CodeMirror projet par Marijn Haverbeke (https://github.com/marijnh/CodeMirror)

+1

N'est-ce pas étonnant qu'il n'y ait pas d'API triviale pour cela dans les navigateurs? WTF? –

+0

Le lien est maintenant rompu – Gary

0

Essayez d'utiliser ceci:

var pos = getCaretPos(document.formName.textareaName); 

function getCaretPos(obj) 
{ 
    obj.focus(); 

    if(obj.selectionStart) return obj.selectionStart;//Gecko 
    else if (document.selection)//IE 
    { 
    var sel = document.selection.createRange(); 
    var clone = sel.duplicate(); 
    sel.collapse(true); 
    clone.moveToElementText(obj); 
    clone.setEndPoint('EndToEnd', sel); 
    return clone.text.length; 
    } 

    return 0; 
} 
+1

et comment peut-il aider à déterminer à quelle ligne et colonne le caret est? – heximal

2

Pourquoi ne pas faire ceci:

Prenez le contenu du texte que jusqu'à selectionStart puis faire un tableau en division à eol

p = $('#Form_config').val().substr(0, $('#Form_config')[0].selectionStart).split("\n"); 

// line is the number of lines 
line = p.length; 

// col is the length of the last line 
col = p[p.length-1].length; 
Questions connexes