Jak śledzić kursor / kursor w contenteditable?

Chciałbym śledzić ruch kursora / kursora w zadowalającym. Nie jestem jednak pewien, jaki jest najlepszy sposób, aby to zrobić.

Aktualnie słucham kliknięcia, keydown, keyup. (naciśnięcie klawisza oczywiście nie powoduje nawet ognia dla takich rzeczy jak klawisze strzałek lub ctrl-x.)

Chociaż kliknięcie działa dobrze, problem z keydown polega na tym, że jest uruchamiany, zanim kursor rzeczywiście się poruszy, więc gdy sprawdzam bieżący zakres wyboru dokumentów, otrzymuję starą pozycję, a nie nową. Ale jeśli polegam na kluczowaniu, aby uzyskać zaktualizowaną pozycję, wystrzeliwuje się za późno: daszek porusza się, gdy tylko klawisz zostanie wciśnięty, ale klucz zostanie zwolniony arbitralnie później.

Musi to być możliwe, ponieważ takie rzeczy jak CKeditor są w stanie to zrobić. Jakieś wskazówki?

questionAnswers(4)

yourAnswerToTheQuestion