Andy: DOM getRangeAt(0).commonAncestorContainer.parentNode.tagName

Hallo,

ich habe eine Frage zu DOM. Das funktioniert perfekt:

document.getElementById('iFrame').contentWindow.document.getSelection().getRangeAt(0).commonAncestorContainer.tagName;

document.getElementById('iFrame').contentWindow.document.getSelection().getRangeAt(0).commonAncestorContainer.parentNode.tagName;

document.getElementById('iFrame').contentWindow.document.getSelection().getRangeAt(0).commonAncestorContainer.firstChild.tagName;

Aber wie komme ich auf das aktuelle Element? Also kein parentNode kein firstChild sondern das was ich selektiert habe?

Ich meine bei nodeType = 1 (Control-Type im IE).

Wenn Ich eine table habe und in dieser ein img dann wird mir immer nur der TD tag als tagName angezeigt nur auf den img tag komm ich nicht.

Vielen Dank für jede Hilfe.

Andy

  1. Aber wie komme ich auf das aktuelle Element? Also kein parentNode kein firstChild sondern das was ich selektiert habe?

    commonAncestorContainer ist doch mehr als sprechend. Bei Markierungs-Vorgängen gibt es nicht DAS aktuelle Element, es können schließlich mehrere Knoten oder auch nur Teile eines Knoten markiert werden.

    Ob wirklich nur ein Knoten markiert wurde kannst du herausfinden, indem du überprüfst ob range.startContainer der selbe Knoten wie range.endContainer ist.

    commonAncestorContainer [MDN]

    1. Danke für den guten Tip. Ich habe die childNodes gefunden.