Get cursor-position in contenteditable div
Fand ich den folgenden code hier auf, DAMIT man die position des Cursors an eine contenteditable div, aber es gibt immer 0 zurück.
Der Funktion, sollte das abrufen der 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);
Den code, den ich verwenden, um es zu testen:
$('div.MESSAGE_OF_DAY').keyup(function() {
alert($(this).getCursorPosition()); //always returns 0???
});
Ich bin mit Chrome (8.0.552.215) wenn es darauf ankommt.
InformationsquelleAutor PeeHaa | 2010-12-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Funktion, die Sie gefunden haben, ist für die Suche nach dem Cursor oder die Auswahl in einem input-oder textarea -, nicht eine contenteditable-element. Die Einfügemarke/Auswahl-Grenze-position erhalten werden kann, in Bezug auf einen DOM-Knoten und offset innerhalb dieses Knotens mit Hilfe des Browsers
Auswahl -
Objekt zu erhaltenBereich
. Ich schlage vor, beim Lesen über diese Objekte (die links habe ich zur Verfügung gestellt sind ein guter Ausgangspunkt). In Internet Explorer, dieser Prozess ist völlig Verschieden, aber Sie können meine Feingliedrig - Bibliothek zur Beseitigung der Unterschiede.Ich habe aus deiner lib und so wie es aussieht, ist der einfachste Weg zu gehen, bedenkt man all die 'hacks' ich sehe in deinem code :P. Allerdings habe ich einige spezielle Fragen auf, wie benutze ich die lib zum durchführen von bestimmten Aktionen möchte ich es verwenden für. Vielleicht können Sie mir helfen? Vielen Dank im Voraus!
Sicher. Sie können mich per E-Mail oder post an die Google-Group: groups.google.com/group/rangy
InformationsquelleAutor Tim Down