Wie kann ich das Element erhalten, in dem sich das Caret befindet, wenn Sie contentEditable benutzen?
Sagen wir, ich habe einige HTML-code wie dieser:
<body contentEditable="true">
<h1>Some heading text here</h1>
<p>Some text here</p>
</body>
Nun die Einfügemarke (der blinkende cursor) blinkt innerhalb des H1-element, sagen wir in dem Wort "überschrift". Wie bekomme ich den Namen des Elements den Cursor mit JavaScript? Hier würde ich gerne "h1".
Muss dies funktioniert nur in WebKit (es ist eingebettet in eine Anwendung). Es sollte am besten auch in der Arbeit für die Auswahl.
InformationsquelleAutor der Frage Lucas | 2009-07-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens, denken über warum Sie dies tun. Wenn Sie versuchen, zu verhindern, dass Benutzer die Bearbeitung bestimmter Elemente, setzen Sie einfach
contenteditable
auf false, auf diese Elemente.Es ist jedoch möglich, das zu tun, was Sie Fragen. Der code unten funktioniert in Safari 4 und wird wieder der Knoten die Auswahl verankert wird (D. H. wenn der Benutzer begann zu wählenwählen Sie "rückwärts" zurück, die Ende statt am Anfang) – wenn Sie möchten, dass der element-Typ als ein string, der bekommt eben
nodeName
Eigenschaft des zurückgegebenen Knoten. Dies funktioniert für null-Länge-Auswahlen (d.h. nur eine Cursor-position).InformationsquelleAutor der Antwort You