günther: innerText bzw. innerHTML

guten abend,

ich habe mir ein rich text editor gebastelt. mein ziel ist formatierten text als html code darzustellen. unter ff funktioniert es einwandfrei, bzw. die html darstellung ist genauso wie ich es möchte.

nur beim ie gibt es einige probleme. zum beispiel, wenn ich ein text fett habe wird nicht wie bei firefox <b>fett</b> sondern <strong>fett</strong>.

gibt es eine möglichkeit den erzeugten htmlcode in ie genauso auszussehen lassen wie beim ff?

grüße

  1. ich habe mir ein rich text editor gebastelt. mein ziel ist formatierten text als html code darzustellen. unter ff funktioniert es einwandfrei, bzw. die html darstellung ist genauso wie ich es möchte.

    nur beim ie gibt es einige probleme. zum beispiel, wenn ich ein text fett habe wird nicht wie bei firefox <b>fett</b> sondern <strong>fett</strong>.

    gibt es eine möglichkeit den erzeugten htmlcode in ie genauso auszussehen lassen wie beim ff?

    Ja, indem du beide Browser anweist, das Element deiner Wahl zu verwenden.
    Denn "fetter text" ist weder <b> noch <strong> sondern font-weight:bold
    Dass die Browser bei bold() irgendetwas erzeugen, sollte dich nicht weiter interessieren, sobald du auf bold() verzichtest.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. hallo beat,

      Ja, indem du beide Browser anweist, das Element deiner Wahl zu verwenden.

      das versuche ich ja gerade. da ich in meiner toolbar ca. 30 elemente habe, möchte ich jetzt nicht hingehen und für jedes element eine funktion schreiben. so, wie es ff darstellt, ist gerade das, was ich suche.

      Denn "fetter text" ist weder <b> noch <strong> sondern font-weight:bold

      das ist richtig. ff macht an dieser stelle font-weight:bold. ich habe es nur so mal "schnell" hingeschrieben.

      Dass die Browser bei bold() irgendetwas erzeugen, sollte dich nicht weiter »» interessieren, sobald du auf bold() verzichtest.

      das verstehe ich jetzt nicht???

      gruß
      günter

      1. Dass die Browser bei bold() irgendetwas erzeugen, sollte dich nicht weiter »» interessieren, sobald du auf bold() verzichtest.
        das verstehe ich jetzt nicht???

        Verwendest du sowas?
        http://de.selfhtml.org/javascript/objekte/string.htm#bold

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Verwendest du sowas?
          http://de.selfhtml.org/javascript/objekte/string.htm#bold

          nein, sowas verwende ich nicht.

          genauer gesagt, verwende ich eine funktion aus einem anderen skript, die genau den html text darstellt. die funktion sieht so aus:

          var getDocument = document.getElementById("wysiwyg" + n).contentWindow.document;  
          var browserName = navigator.appName;  
            
          if (browserName == "Microsoft Internet Explorer") { // View Source for IE  
           var iHTML = getDocument.body.innerHTML;  
           getDocument.body.innerText = iHTML;  
          } else { // View Source for Mozilla/Netscape  
           var html = document.createTextNode(getDocument.body.innerHTML);  
           getDocument.body.innerHTML = "";  
           getDocument.body.appendChild(html);  
          }
          
          1. Verwendest du sowas?
            http://de.selfhtml.org/javascript/objekte/string.htm#bold

            nein, sowas verwende ich nicht.

            genauer gesagt, verwende ich eine funktion aus einem anderen skript, die genau den html text darstellt.

            Ich denke, dein Problem liegt nicht bei der Darstellung, sondern bei der Erzeugung des HTML. Sollte wohl klar sein.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Ich denke, dein Problem liegt nicht bei der Darstellung, sondern bei der Erzeugung des HTML. Sollte wohl klar sein.

              genau so ist es. ie erstellt einen anderen html-code als ff. der von ff ist mir aber lieber.

              gibt es da eine möglichkeit unter ie den gleichen html-code zu generieren wie bei ff?

              1. @@günther:

                nuqneH

                gibt es da eine möglichkeit unter ie den gleichen html-code zu generieren wie bei ff?

                Auf die Browserweiche verzichten?

                Qapla'

                --
                Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                (Mark Twain)
  2. nur beim ie gibt es einige probleme. zum beispiel, wenn ich ein text fett habe wird nicht wie bei firefox <b>fett</b> sondern <strong>fett</strong>.

    Dann ist dein Dokument nicht im standardmode, ändere das.

    gibt es eine möglichkeit den erzeugten htmlcode in ie genauso auszussehen

    lassen wie beim ff?

    Das wäre schlecht, da hier der IE die bessere Wahl getroffen hat.

    Struppi.

    1. @@Struppi:

      nuqneH

      Das wäre schlecht, da hier der IE die bessere Wahl getroffen hat.

      Kann man so nicht sagen. Es handelt sich ja um Nutzereingaben. Der Nutzer hat eine Textpassage aus _irgendeinem_ Grund als _fett_  markiert. Ob diese besonders bedeutsam ist, lässt sich nicht sagen. Da kann man nun philosophieren, ob 'b' oder 'strong' das besser geeignete Element ist. Aber abhängig vom Browser ist das natürlich nicht.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Das wäre schlecht, da hier der IE die bessere Wahl getroffen hat.

        Kann man so nicht sagen. Es handelt sich ja um Nutzereingaben. Der Nutzer hat eine Textpassage aus _irgendeinem_ Grund als _fett_  markiert. Ob diese besonders bedeutsam ist, lässt sich nicht sagen. Da kann man nun philosophieren, ob 'b' oder 'strong' das besser geeignete Element ist. Aber abhängig vom Browser ist das natürlich nicht.

        Ich hab mittlerweile festgestellt, das bei mir Firefox in beiden (Quirks-/Standardmode) Fällen ein span Element benutzt, um Text fett zu markieren. Was aus der Sicht eines solchen Editors die beste Wahl ist.

        Insofern ist das Problem von günther ein anderes. Ich kann mich aber erinnern, dass eben frühe Firefox Versionen so reagiert haben.

        Struppi.

  3. nur beim ie gibt es einige probleme. zum beispiel, wenn ich ein text fett habe wird nicht wie bei firefox <b>fett</b> sondern <strong>fett</strong>.

    Du machst irgendetwas falsch.
    http://www.quirksmode.org/dom/execCommand.html

    For instance, when making a selection bold, IE and Opera add a <strong> tag, while Mozilla adds a <span style="font-weight: bold">. Safari's implementation is weird.

    Also kein Browser erzeugt in dem Fall ein b-Element.

    gibt es eine möglichkeit den erzeugten htmlcode in ie genauso auszussehen lassen wie beim ff?

    Und wie möchtest du es im Opera? Wie soll es im Safari, Chrom, usw. aussehen.
    Es gibt momentan keine identische Implementierung dieser Funktionen, d.h. du müßtest für jeden Browser rausfinden was er macht und dann ein entsprechende Änderung in deinem Editor Skript machen, wenn du execCommand aufrufst

    Struppi.

    1. Also kein Browser erzeugt in dem Fall ein b-Element.

      Doch, Safari und Chrome erzeugen b.

      Mathias

      1. Also kein Browser erzeugt in dem Fall ein b-Element.

        Doch, Safari und Chrome erzeugen b.

        Die beiden Browser nutze ich nicht, aber machen die das immer?
        Im Firefox kann man das erwzingen mit:

        execCommand("styleWithCSS", false, null );  
        execCommand("useCSS", false, null );  
        
        

        Struppi.

        1. Die beiden Browser nutze ich nicht, aber machen die das immer?

          Anscheinend ja. Webkit behauptet zwar, styleWithCSS zu unterstützen (queryCommandSupported("styleWithCSS") ergibt true), allerdings wird auch nach execCommand("styleWithCSS", true, null) weiterhin das b-Element verwendet. (Vielleicht habe ich da was missverstanden.)

          Mathias

          1. Anscheinend ja. Webkit behauptet zwar, styleWithCSS zu unterstützen (queryCommandSupported("styleWithCSS") ergibt true), allerdings wird auch nach execCommand("styleWithCSS", true, null) weiterhin das b-Element verwendet. (Vielleicht habe ich da was missverstanden.)

            Mal ne Frage: Wen interessiert, ob <del>Scare-Face</del><ins>Rich-Text</ins> auf Browsern einheitlichen Code produziert, solange wir alle wissen, dass solcher Code niemals Quelle weiterer Datenverarbeitung sein kann. Ich denke, das Kapitel Frontpage hätten wir erschlagen.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Mal ne Frage: Wen interessiert, ...

              Naja, die die dieses Feature benutzen. Du wirst nicht umhin kommen sowas einzubauen, wenn du für andere Leute eine Online Anwendung programmierst.

              Struppi.

              1. Mal ne Frage: Wen interessiert, ...

                Naja, die die dieses Feature benutzen. Du wirst nicht umhin kommen sowas einzubauen, wenn du für andere Leute eine Online Anwendung programmierst.

                "Online" verstehe ich. Aber "Anwendung" mit Sinne von etwas wiederverwendbarem produzieren, verstehe ich nicht.

                Aber ich vestehe so langsam jene Dokumente mit homöopathischem Nutzinhalt.

                mfg Beat

                --
                ><o(((°>           ><o(((°>
                   <°)))o><                     ><o(((°>o
                Der Valigator leibt diese Fische
                1. Mal ne Frage: Wen interessiert, ...

                  Naja, die die dieses Feature benutzen. Du wirst nicht umhin kommen sowas einzubauen, wenn du für andere Leute eine Online Anwendung programmierst.

                  "Online" verstehe ich. Aber "Anwendung" mit Sinne von etwas wiederverwendbarem produzieren, verstehe ich nicht.

                  Da gibt es auch nichts zu verstehen.

                  Ich weiß nicht, was du unter wiederverwendbar verstehst, man muss diese Inhalte einfach als das nehmen was sie sind, von Leuten eingegeben, die kein HTML können. Und davon gibt es viele.

                  Ich mach mir da auch wenig Gedanken drum, wenn's Scheiße aussieht ist das nicht mein Problem. Aber das ist ein Privileg, wenn dein Auftraggeber erwartet dass er Inhalte ändern kann ohne HTML zu lernen, wirst du damit arbeiten müssen.

                  Aber ich vestehe so langsam jene Dokumente mit homöopathischem Nutzinhalt.

                  Das ist dann deine Sichtweise, diese ist aber homöophathisch.

                  Struppi.

          2. Die beiden Browser nutze ich nicht, aber machen die das immer?

            Anscheinend ja. Webkit behauptet zwar, styleWithCSS zu unterstützen (queryCommandSupported("styleWithCSS") ergibt true), allerdings wird auch nach execCommand("styleWithCSS", true, null) weiterhin das b-Element verwendet. (Vielleicht habe ich da was missverstanden.)

            auch mit execCommand("useCSS")?

            Struppi.

            1. Sorry, ich habe mich geirrt.
              execCommand("styleWithCSS", true, true), also sinnigerweise mit true als dritten value-Parameter, funktioniert wie gewünscht. Chrome 8 erzeugt dann die auf QuirksMode beschriebenen span-Elemente der Art <span class="Apple-style-span" style="font-weight: bold;">...</span>.
              Das geht aber nicht in Safari 5.0.3, der verneint die Unterstützung sowohl von styleWithCSS als auch von useCSS bei queryCommandSupported. Der Webkit im Chrome scheint hier neuer zu sein (es erscheinen wöchentlich neue Chrome-Versionen).
              useCSS kann Chrome 8 nicht, nur styleWithCSS.

              Mathias

    2. http://www.quirksmode.org/dom/execCommand.html

      For instance, when making a selection bold, IE and Opera add a <strong> tag, while Mozilla adds a <span style="font-weight: bold">. Safari's implementation is weird.

      »Page last changed 3 years ago«
      Die Aussagen über Safari 3 dort treffen nicht auf die aktuellen Webkit-Versionen zu.