Sven: execCommand

Hallo zusammen

Es gibt doch einen Befehl "execCommen('bold')
um den markierten Text Fett zu schreiben.

Frage: weiss jemand den Befehl um dem markierten Text eine
"Span Class" zuzuweisen?

Danke fürs Feedback
Sven

  1. Hi

    Frage: weiss jemand den Befehl um dem markierten Text eine
    "Span Class" zuzuweisen?

    Versteh ich nicht ganz. Eine Klasse kannst Du nur einem Tag zuordnen. Willst Du also zuerst um den markierten Text ein Span-Tag einfügen und dann dem Span-Tag eine Klasse zuordnen?

    gruß
    Sven

    1. Hi

      Frage: weiss jemand den Befehl um dem markierten Text eine
      "Span Class" zuzuweisen?

      Versteh ich nicht ganz. Eine Klasse kannst Du nur einem Tag zuordnen. Willst Du also zuerst um den markierten Text ein Span-Tag einfügen und dann dem Span-Tag eine Klasse zuordnen?

      Ja, genau so möchte ich es machen. Weisst du wie?
      Gruss Sven1

      gruß
      Sven

      1. Hallo nochmal!

        Versteh ich nicht ganz. Eine Klasse kannst Du nur einem Tag zuordnen. Willst Du also zuerst um den markierten Text ein Span-Tag einfügen und dann dem Span-Tag eine Klasse zuordnen?

        Ja, genau so möchte ich es machen. Weisst du wie?

        Lass mich denken. Der zweite Schritt ist der einfachere

        oSpanObjekt.setAttribute("class", sClassName, 0);

        zuerst den Namen des zu setzenden Attributes, dann den Wert. 0 sagt, dass alle vorherigen Werte, egal ob der Name des Attributes groß oder kleingeschrieben ist, ersetzt wird. Default ist 1, dann könnte es sein, dass Du CLASS setzt, es aber schon class gibt.

        So, der erste Schritt, nämlich das DIV erstellen, ist da schon schwieriger. Und um erhlich zu sein musst Du Dir da die Arbeit schon selbst machen, genau weiß ich es auch nicht (mehr?). Irgendwas in der Richtung hab ich schon gemacht.

        Schau Dir mal gut die MSDN-Seite an. Da is alles sehr schön dokumentiert. http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/tr.asp?frame=true

        Also zum erstellen eines Span-Elementes gibt es glaube ich oSpanObjekt = document.createElement("SPAN");

        Damit hast Du einmal ein Span, dass in der Luft hängt. Es ist ein echtes Span, es ist halt nirgends auf der Seite noch im Browsernirvana.

        Dann greifst Du mit document.selection auf den Inhalt zu und schreibst ihn mit oSpanObjekt.innerText = varSelectionText; hinein.
        Vorher unbedingt prüfen ob es auch eine TextSelection ist. Bei einer ControlSelection gibt das Fehler.

        Tja dann den Text im Dokument löschen und irgendwie das Span dort hinein. Schau dir dazu Mal die Node- und child-Funktionen an. appendChild(oSpanObjekt), ...

        dann viel Spaß
        sven

        1. Danke für deinen Tipp..aber ich bin noch nicht viel weiter..wenigstens keine Fehlermeldung..:-)

          folgender Code habe ich:

          function Schrift(nr) {
           eval('Bereich'+ nr +'.focus()');
           varSelectionText = eval('Bereich'+ nr +'.document.selection.createRange()');
           var oSpanObjekt = document.createElement("SPAN");
           oSpanObjekt.setAttribute("class", "fliesstext", 0);
           oSpanObjekt.innerText = varSelectionText;

          }

          Nun fehlt in meinen Augen nur noch das ersetzen des Originaltextes mit dem manipulierten Text.

          Kannst Du mir da nochmal helfen?

          Sven

          Hallo nochmal!

          Versteh ich nicht ganz. Eine Klasse kannst Du nur einem Tag zuordnen. Willst Du also zuerst um den markierten Text ein Span-Tag einfügen und dann dem Span-Tag eine Klasse zuordnen?

          Ja, genau so möchte ich es machen. Weisst du wie?

          Lass mich denken. Der zweite Schritt ist der einfachere

          oSpanObjekt.setAttribute("class", sClassName, 0);

          zuerst den Namen des zu setzenden Attributes, dann den Wert. 0 sagt, dass alle vorherigen Werte, egal ob der Name des Attributes groß oder kleingeschrieben ist, ersetzt wird. Default ist 1, dann könnte es sein, dass Du CLASS setzt, es aber schon class gibt.

          So, der erste Schritt, nämlich das DIV erstellen, ist da schon schwieriger. Und um erhlich zu sein musst Du Dir da die Arbeit schon selbst machen, genau weiß ich es auch nicht (mehr?). Irgendwas in der Richtung hab ich schon gemacht.

          Schau Dir mal gut die MSDN-Seite an. Da is alles sehr schön dokumentiert. http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/tr.asp?frame=true

          Also zum erstellen eines Span-Elementes gibt es glaube ich oSpanObjekt = document.createElement("SPAN");

          Damit hast Du einmal ein Span, dass in der Luft hängt. Es ist ein echtes Span, es ist halt nirgends auf der Seite noch im Browsernirvana.

          Dann greifst Du mit document.selection auf den Inhalt zu und schreibst ihn mit oSpanObjekt.innerText = varSelectionText; hinein.
          Vorher unbedingt prüfen ob es auch eine TextSelection ist. Bei einer ControlSelection gibt das Fehler.

          Tja dann den Text im Dokument löschen und irgendwie das Span dort hinein. Schau dir dazu Mal die Node- und child-Funktionen an. appendChild(oSpanObjekt), ...

          dann viel Spaß
          sven