J'ai trouvé le code suivant ici sur le SO pour obtenir la position du curseur d'un contenteditable div, mais il retourne toujours 0.Get-position du curseur dans contenteditable div
La fonction qui devrait récupérer la position:
new function($) {
$.fn.getCursorPosition = function() {
var pos = 0;
var input = $(this).get(0);
// IE Support
if (document.selection) {
input.focus();
var sel = document.selection.createRange();
var selLen = document.selection.createRange().text.length;
sel.moveStart('character', -input.value.length);
pos = sel.text.length - selLen;
}
// Firefox support
else if (input.selectionStart || input.selectionStart == '0')
pos = input.selectionStart;
return pos;
}
} (jQuery);
Le code que j'utilise pour tester:
$('div.MESSAGE_OF_DAY').keyup(function() {
alert($(this).getCursorPosition()); // always returns 0???
});
J'utilise Chrome (8.0.552.215) si elle compte.
Wow, j'étais juste en train de me débattre avec elle hier soir car j'ai découvert que ça ne revenait pas vraiment à la bonne position (j'ai été prévenu par answerer). surtout quand cela devient plus complexe qu'un seul mot par exemple: P Alors merci beaucoup de vérifier cette question déjà posée et de me pointer dans la bonne direction! Je vais vérifier et vous tenir au courant. – PeeHaa
J'ai vérifié votre lib et il semble que c'est la façon la plus facile d'aller compte tenu de tous les «hacks» que je vois dans votre code: P. Cependant, j'ai quelques questions spécifiques sur la façon dont j'utilise la lib pour effectuer les actions spécifiques pour lesquelles je veux l'utiliser. Peut-être pouvez-vous m'aider d'une certaine manière? Merci d'avance! – PeeHaa
@PeeHaa: Bien sûr. Vous pouvez m'envoyer un e-mail ou envoyer des messages au groupe Google: http://groups.google.com/group/rangy –