getStyle in editierbaren Iframe?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • getStyle in editierbaren Iframe?

    Hallo,

    ich verzweifel langsam!
    Ich bau mir grad einen eigene Wysiwyg-Editor...Im Grund funktioniert auch alles!

    Ich will jetzt aber, das die Formatierungen des Textes in den Buttons der Toolbar angezeigt werden. Das heißt ist ein Text Fett, dann ist der Bold-Button markiert, bzw. eingedrückt!

    Wie zum Geier wird das gemacht?

    Ich hatte es mit versucht mit "FocusNode" ein Referenz auf das Objekt wo der Cursor steht zu bekommen, aber ohne Erfolg. Alle Eigenschaften wie "TagName" sind darunter "undefined".

    Code:
            if (this.objIframe.contentWindow.document.selection) {
                this.selectedObject =  this.objIframe.contentWindow.document.selection;            
                this.selectedText = this.selectedObject.createRange().text;
            } else {
                this.selectedObject = this.objIframe.contentWindow.getSelection();      
                this.selectedText = this.selectedObject.toString();      
            }
            alert(this.selectedObject.focusNode); // [object text] bekomm ich als Ausgabe, weiter runter geht es aber nicht!

    Hätte ich die Referenz gehabt, hätte ich versucht mit "getStyle" die Formatierungen aus zu lesen, aber den Punkt komm ich ja noch garnicht mal!

    Hat das jemand schon mal gemacht, und kann mir sagen wie ich die Funktionalität umsetze?

    Danke!

  • #2
    Code:
            alert(this.selectedObject.focusNode); // [object text] bekomm ich als Ausgabe, weiter runter geht es aber nicht!
    Was soll denn da auch noch „weiter runter“ gehen?

    Ein Textknoten hat keine Nach-, sondern nur Vorfahrenelemente.
    Wenn schon, dann willst du also weiter rauf.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ja, weiter rauf wie man es sehe will.

      this.selectedObject.focusNode.tagName

      sollte z.B. gehen, tut es aber leider nicht!?

      Kommentar


      • #4
        Zitat von TriphunEM Beitrag anzeigen
        Ja, weiter rauf wie man es sehe will.
        Nein, nicht wie man es sehen will - nur so kann man es sehen. (Zumindest, wenn man ein Grundverständnis davon hat, wie das DOM funktioniert.)

        this.selectedObject.focusNode.tagName

        sollte z.B. gehen, tut es aber leider nicht!?
        Vielleicht meinst du nodeName ...?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Ähm, "focusNode.tagname" ist eine Ebene tiefer als ""focusNode" (Wenn was tiefer geht, geht es auch runter, oder wirfst du einen Stein in den Brunnen hoch? )
          Aber egal, darum geht es jetzt nicht.

          Ich hab in meinem editierbaren Iframe "Hallo" stehen. Das heißt hinter dem Text steht der HTML-Code "<strong>Hallo</strong>" und der Crusor steht auf dem Wort Hallo. Jetzt will ich auf genau das Element "<strong>" zu greifen!

          Ich hab gelesen es soll halt mit

          this.objIframe.contentWindow.document.selection.focusNode

          gehen! Wenn ich das Objekt hätte will ich dann mit getStyle den CSS-Style auslesen...aber soweit komm ich ja nicht!

          Kommentar


          • #6
            Zitat von TriphunEM Beitrag anzeigen
            Ähm, "focusNode.tagname" ist eine Ebene tiefer als ""focusNode"
            Ja, das natürlich schon.

            Aber ein Textknoten hat keine Style-Eigenschaften - also willst du in dem Fall eine Ebene nach oben gehen, zu dem Element, welches den Textknoten enthält; das kann Style-Eigenschaften haben.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              So funzt es

              this.objIframe.contentWindow.document.selection.anchorNode.parentNode

              Kommentar

              Lädt...
              X