wizz99: tags um ein element herum einlesen

hallo zusammen,

sorry, die überschrift ist nicht wirklich vielsagend, aber ich weiß nicht, wie ich es so kurz besser formulieren soll.

also denn: ich arbeite zur zeit experimentell an einem content-management-system (bislang erst einmal ausschließlich für den IE) und möchte nun herausfinden, wie genau ein text formatiert ist, sobald man ihn anklickt/markiert. im zuge dessen sollen sich dann entsprechende buttons (fett, kursiv, unterstrichen, etc) in der toolbar des CMS einfärben, damit man sofort erkennt, welches wort/welcher absatz wie formatiert wurde.

hier ein beispieltext:
<u><strong><em>das ist mein beispieltext</em></strong></u>

die selektion bekomme ich so:

var oControlRange = document.selection.createRangeCollection();
 var oRange = oControlRange(0).parentElement();

dann muss ich überprüfen, um welchen tagName es sich handelt, um dann per javascript den entsprechenden button in der CMS-toolbar einzufärben. etwa so:

// fett
 if(oRange.tagName == "STRONG" || oRange.parentNode.tagName == "STRONG" || oRange.parentNode.parentNode.tagName == "STRONG") {

CMSbutton('over','fett2','../pics/edit_fett02.gif','../pics/edit_fett02.gif',1);

}; // end fett

klappt soweit auch wunderbar. einziges problem: die if-abfrage ist unter umständen sehr fehleranfällig. mit oRange.tagName spreche ich nur den knoten hat, der sich direkt um meinen beispieltext herum befindet. da es aber möglich ist (siehe beispiel oben), mehrere tags um einen text herumzusetzen, muss ich auch abfragen, ob der knoten über dem ersten knoten und der knoten, der wiederum darüber liegt, irgendwas mit dem beispieltext und seiner formatierung zu tun hat.

dabei kann es passieren, dass ein anderer beispieltext nur EIN elternknoten besitzt und ich mit meiner if-abfrage diesen knoten anspreche, zusätzlich aber den darüber (z.b. den BODY) und dann noch den darüber, was schnell zu einem javascriptfehler führen kann.

möchte mein script auch nur ungern dahingehend "kitten", dass halt keine fehler mehr auftauchen, sondern frage mich, ob es nicht eine einfachere lösung gibt, um die gesamte anzahl der knoten, die sich DIREKT um ein (markiertes) element herum befinden, herauszufinden. ein array beispielsweise, dass mir in diesem fall anzeigt ("U", "STRONG", "EM"), wäre klasse. so kann ich viel leichter arbeiten.

zudem soll der code sich auch in grenzen halten, und mit meiner if-abfrage tut er das zwangsläufig nicht, da ich nicht nur abfragen will, ob ein text fett ist... da kommen noch sehr viele andere sachen hinzu.

ich scripte das ganze CMS im moment noch wie gesagt ausschließlich für den IE (bitte keine moralischen bedenken äußern jetzt... danke). daher kann ich auch (bzw ich habe es bereits) auf microsoft-jscript (siehe URL unten) zurückgreifen.

irgendjemand eine idee?

danke und bis später,
wizz99.