Wie kann ich mit Javascript das Element ermitteln, in dem sich das Caret befindet, wenn ich contentEditable verwende?

Angenommen, ich habe einen HTML-Code wie diesen:

<body contentEditable="true">
   <h1>Some heading text here</h1>
   <p>Some text here</p>
</body>

Jetzt blinkt das Caret (der blinkende Cursor) im H1-Element, sagen wir in der Überschrift. Wie kann ich mit JavaScript den Namen des Elements ermitteln, in dem sich das Caret befindet? Hier möchte ich "h1" bekommen.

Dies muss nur in WebKit funktionieren (es ist in eine Anwendung eingebettet). Es sollte vorzugsweise auch für Auswahlen funktionieren.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage