Balazs: createRange Problem

hallo Forum,

...ziemlich lang ists her, dass ich das letzte Mal hier war..:)

habe nun ein kleines Problem, an dem ich schon seit Tagen den Kopf zerbreche, aber kann leider keine Lösung finden.

ich habe ein kleines CMS "gestrickt", das einige einfache Formatierungen vom Text erlaubt. So ähnlich wie der Code von Torsten Anacker in der "Tipps & Tricks" Rubrik, jedoch soll HTML Code eingefügt werden. Für den IE will es einfach nicht klappen...
...und zwar, wenn ich ein Wort im IFrame markiere, möchte ich diese Auswahl dann durch HTML ersetzen. Mein Code dazu:

1: sMyText = window.frames["edit"].document.selection.createRange();
2: sMyText2 = sMyText.text;
3: sMyText.moveToElementText(sMyText2);

und in einem anderen Fenster wird der einzufügende Code zusammengestellt:

4: var range = opener.sMyText;
5: var insText = opener.sMyText2;
6: text = "<b>" + insText + "</b>";
7: range.pasteHTML(text);
8: range.select();

es funktioniert zwar(!), aber da bekomme ich leider eine Fehlermeldung für die Zeile #3 mit moveTo...wenn ich aber das hier statt Zeile #3 versuche("inhalt1" ist ein DIV in dem der ganze Text steht):

sMyText.moveToElementText(opener.frames["edit"].document.getElementById("inhalt1"));

dann dehnt sich die Selektion auf den ganzen Text aus, was ja nicht sinnvoll ist...

moveToElementText erwartet ein Element vom Typ Objekt....wie kann ich ihm beibringen, dass ich die Selektion meine?

ich wäre sehr glücklich, wenn mir jemand einen Tipp geben könnte!!

danke und lg
Balazs

  1. ...kaum schreibt man ins Forum, die Lösung kommt von alleine...;)

    wenn es jemanden interessiert:

    1: sMyText = window.frames["edit"].document.selection.createRange();
    2: sMyText2 = sMyText.text;

    3:  iLinks = sMyText.boundingLeft;
    4: iTop = sMyText.boundingTop;

    und in einem anderen Fenster wird der einzufügende Code zusammengestellt:

    5: var range = opener.sMyText;
    6: var insText = opener.sMyText2;

    range.moveToPoint(opener.iLinks,opener.iTop);

    7: text = "<b>" + insText + "</b>";
    8: range.pasteHTML(text);
    9: range.select();

    lg,
    Balazs