GhoulLord: Javascript, HTML-Tags ausgeben

Nabend!

Ich ändere über Javascript den Inhalt eines Nodes über:

document.getElementById("detail").firstChild.data = "Coucou<br>BlahBlah";

Jetzt zeigt der Browser schön die <br>'s an. Wie gebe ich den Krams so aus, dass die <br>'s als <br>'s funzen und nicht als Text angezeigt werden?

Ich such nun schon eine Stunde im Netz und finde nix. HELP

Thx,
GhoulLord

  1. hi,

    Ich such nun schon eine Stunde im Netz und finde nix.

    Ach, wirklich? Kann es sein, daß du http://de.selfhtml.org/javascript/sprache/operatoren.htm#zeichenkettenverknuepfung nicht gefunden hast?

    Grüße aus Berlin

    Christoph S.

    1. Hi,

      Ach, wirklich? Kann es sein, daß du http://de.selfhtml.org/javascript/sprache/operatoren.htm#zeichenkettenverknuepfung nicht gefunden hast?

      und wie sollte es hiermit möglich sein, einen neuen Knoten zu erzeugen oder ein HTML-Element in einen Textknoten zu setzen?
      Ein Hinweis auf innerHTML oder createTextNode() wäre da hilfreicher. Allerdings frage ich mich auch, wieso das innerhalb einer Stunde nicht gefunden werden sollte?

      freundliche Grüße
      Ingo

      1. hallo Ingo,

        Kann es sein, daß du http://de.selfhtml.org/javascript/sprache/operatoren.htm#zeichenkettenverknuepfung nicht gefunden hast?
        und wie sollte es hiermit möglich sein, einen neuen Knoten zu erzeugen oder ein HTML-Element in einen Textknoten zu setzen?
        Ein Hinweis auf innerHTML oder createTextNode() wäre da hilfreicher.

        Machen wirs konkret: http://de.selfhtml.org/javascript/objekte/node.htm#first_child. Du hast recht, ich hab mich verklickert.

        Allerdings frage ich mich auch, wieso das innerhalb einer Stunde nicht gefunden werden sollte?

        ;-)

        Grüße aus Berlin

        Christoph S.

        1. Nabend!

          Was bist Du denn für ein Schlauer?
          Erst über meine Suche herziehen und dann auch noch links geben, die des Prob nicht lösen...

          Ich will <br>'s ausgeben, die als <br>'s wirken und nicht als Plaintext erscheinen!

          Und da hilft weder:
          http://de.selfhtml.org/javascript/sprache/operatoren.htm#zeichenkettenverknuepfung
          noch:
          http://de.selfhtml.org/javascript/objekte/node.htm#first_child

          Aber:
          http://de.selfhtml.org/javascript/objekte/all.htm#inner_html

          Wäre hilfreich gewesen...
          Ich habs aber nicht gefunden. Ist ja auch nicht einfach, solch eine Frage über google zu stellen.
          "javascript dom node ändern tag" und ähnliches hats nicht gebracht.
          Aber immer schön den Wichtigen raushängen lassen... :P

          GhoulLord

          1. hallo GhoulLord,

            Was bist Du denn für ein Schlauer?

            Dazu erwartest du doch keine Antwort von mir.

            Aber:
            http://de.selfhtml.org/javascript/objekte/all.htm#inner_html
            Wäre hilfreich gewesen...

            Wäre es nicht, weil "all", wie dort nachzulesen ist, beispielsweise mit meinem Browser unwirksam wäre

            Ist ja auch nicht einfach, solch eine Frage über google zu stellen.

            Es ist dagegen ganz fürchterlich einfach, so eine Anfrage über http://suche.de.selfhtml.org/ zu stellen. Da du hier im Forum postest, geht natürlich jeder davon aus, daß du das bereits getan hast, weil dir der Hinweis ganz oben "Von allen hier Teilnehmenden werden HTML-Grundkenntnisse erwartet. Es wird erwartet, daß bei Problemen erst einmal in SELFHTML, im  Forumsarchiv oder in anderen Quellen nach einer Lösung gesucht wird." gelesen und befolgt hast. Die Suche hätte dich zuverlässig zu den Javascript-Kapiteln in SELFHTML geführt und dem Forum deine Nachfrage sowie mir einen nur ganz wenig danebenliegenden Link erspart.

            Aber immer schön den Wichtigen raushängen lassen... :P

            Jawoll, was meinst du denn, weshalb ich überhaupt gelegentlich hier mal was schreibe?

            Grüße aus Berlin

            Christoph S.

            1. Nabend!

              So, gestern wars späd, me hatte en Hals, das ich das nicht finden konnte und deshalb möchte ich mich jetzt für meine etwas unfeine Antwort entschuldigen. Sorry.

              Aber die Andeutungen, dass ich zu blöd bin, die Infos zu finden, waren auch nicht nett.

              Selbst über die SelfHTML-Suche bin ich nicht zu innerHTML oder zu createSonstwas gekommen. Die Suchparameter sind mir nicht eingefallen. Welche hätte ich den eingeben sollen? Selbst jetzt würde ich es nicht finden, sofern ich nicht innerHTML oder createSonstwas benutzen würde.

              Thx nochmal für die Hilfe, bis zum nächsten mal.

              GhoulLord

          2. Hi,

            Was bist Du denn für ein Schlauer?
            Erst über meine Suche herziehen und dann auch noch links geben, die des Prob nicht lösen...

            nun mal langsam. Zwar war der Link wieder nicht zielführend, aber zumindest über die anderen Hinweise hättest Du Infos zu den zwei möglichen Methoden selbst herausfinden und vielleicht auch verstehen können, warum es auf Deine Weise nicht klappt.

            Du schreibst in einen Textknoten. Logisch, daß dieser Inhalt auch nur als Text angezeigt werden kann.
            Du willst aber einen neuen Knoten, nämlich das Element br einfügen.

            Hierzu könntest Du zum einen eine zugegeben umständliche Funktion basteln, die Deinen Textknoten mit der ID detail auseinander nimmt, den ersten Textteil einfügt, br als neuen Knoten über createTextNode() anhängt und anschließend noch einen weiteren Textknoten mit dem restlichen Text.

            Einfacher geht das mit innerHTML.
            Da Du selbst über Selfhtml-Suche in der Dokumentation dazu leider nicht fündig wirst und dort AFAIK auch nur einzelne verstreute Hinweise speziell zum Microsoft document.all-Objekt stehen, eine aktuellere Information: Inzwischen unterstützen auch andere Browser innerHTML, allerdings nicht als Unterobjekt von document.all. Du kannst innerHTML aber auch über DOM ansprechen. Das sähe dann so aus:

            document.getElementById('test').innerHTML='zeile1<br>zeile2';

            freundliche Grüße
            Ingo

            1. Hi,

              Hierzu könntest Du zum einen eine zugegeben umständliche Funktion basteln, die Deinen Textknoten mit der ID detail auseinander nimmt, den ersten Textteil einfügt, br als neuen Knoten über createTextNode() anhängt

              Bist Du sicher, daß createTextNode() das Mittel ist, mit dem man ein Element erzeugen kann? Ich hätte da ja eher an createElement gedacht.

              Oder übersehe ich da was?
              Bei createTextNode() kann man doch nur einen Text angeben - br ist aber ein EMPTY-Element, hat also keinen Text.
              Und wie teilt man createTextNode mit, daß es ein br-Element erzeugen soll?

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
              1. Hi,

                Bist Du sicher, daß createTextNode() das Mittel ist, mit dem man ein Element erzeugen kann?

                jetzt wo Du mich drauf stößt natürlich nicht. War aber auch schon etwas später und bei den ganzen Knoten hatte ich mich wohl etwas verknotet bzw. den einzigen "Knoten"-Befehl rausgekramt..;-)

                Übrigens nochmals zur Suche: In der Selfhtml-Dokumentation findet sie hierzu nichts. Hier ist die Offline-Version als Window Help-File schon besser und zeigt einige Stellen, bei denen jedoch innerHTML (mit einer kleinen, leicht zu übersehenden Ausnahme: this) nur in Zusammenhang mit document.all erwähnt wird und hier noch steht:
                "Eine Methode wie innerHTML beim all-Objekt gibt es im DOM nicht, weil dort neue Knoten streng nach den Regeln der Auszeichnungssprachen-Syntax erstellt und zusammengestellt werden müssen."
                Spätestens hier hätte ein Suchender diesen Ansatz wohl aufgegeben.

                freundliche Grüße
                Ingo

          3. Hi,

            Was bist Du denn für ein Schlauer?

            Jemand, der solche Fragen nicht stellt, weil er die Antwort kennt und Suchmaschinen und Dokumentationen ohnehin zu benutzen weiß?

            Im übrigen aber ein Mensch ist, der, wie wir alle, auch mal irren oder sich vertun kann?

            Gruß, Cybaer

            PS: Für alle Fälle: Was ist eine "rhetorische Frage"?

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. Hallom.

    document.getElementById("detail").firstChild.data = "Coucou<br>BlahBlah";

    document.getElementById("detail").firstChild.innerHTML =  "Coucou<br>BlahBlah";

    Grüße
    Thomas

    1. Thx,
      hatte es einfach nicht gefunden!

      GhoulLord