Como encontrar a posição do cursor em um DIV editável por conteúdo?

Estou escrevendo um preenchimento automático para um DIV editável por conteúdo (é necessário renderizar o conteúdo html na caixa de texto. É preferível usar o DIV contenteditável em vez da TEXTAREA). Agora, preciso encontrar a posição do cursor quando houver um evento keyup / keydown / click no DIV. Para que eu possa inserir o texto / html nessa posição. Eu não sei como posso encontrá-lo em algum cálculo ou existe uma funcionalidade nativa do navegador que me ajudaria a encontrar a posição do cursor em um DIV editável por conteúdo.

questionAnswers(1)

yourAnswerToTheQuestion