Robert: commands wie execCommand('bold', null, false) nachbauen

Hallo,

Problem:
Ich habe ein Programm, mit dem man eigene Textauszeichnungen für HTML erstellen kann (z.b. <font size="2">).
Werden diese erstellt, sollen sie in einem Rich-Text-Editor generisch als Buttons in der Toolbar zu verfügung stehen. Wenn man nun auf einen Button klickt, soll der selektierte Text mit den öffnenden und schließenden Markups eingegrenzt werden, also so:

Selektierter Text: Test
Nach Drücken des Buttons: <font size="2">Test</font>

Das klappt auch soweit ganz gut. Ich hole mir die aktuelle Selektion und die Markups der Vorlage, die gedrückt wurde, und füge die Teile zusammen. Danach geb ich sie dem Editor und er zeigt sie auch an.

Das Problem ist, das ich sie nicht mehr weg bekomme, weil eine Selektion (egal ob fett oder kursiv) nur als String zurück kommt und keinerlei Informationen über die umschließenden Markups vorhanden ist.

Also ist der Selektierte Text immer "Test".

Meine Frage ist nun, wie ich per Javascript die umschließenden Markups dazu bekomme und ob es irgendwo fertige Implementierungen solcher Commands wie dem Schreiben von fettem Text gibt, denn das Verhalten soll letztendlich wie bei den standardmäßig verfügbaren Commands eines Browsers sein. Also das ich auch am Ende eines Textes den Button drücke und von da an innerhalb der Markups schreibe.
Letztendlich wäre es ja nur ein Bold Command nur mit anderen Markups.

Gruß
Robert