Raphael: HTML in DIV schreiben und als solchen interpretieren ?

Hallo,

ich definiere in meiner HTML-Seite ein Div.

In dieses kann ich per Javascript zugreifen und auch reinschreiben.
So im NS4 per "document.layers[id].document.write(text);

Mit Zeichenketten funktioniert dies ganz gut.

Mein Problem ist, dass wenn ich per Javascript HTML-Code in dieses Div schreibe, dieser nicht als HTML Code interpretiert wird (es muesste ein Link entstehen), sondern als normale Zeichenkette.

D. h. letztendlich erscheint in dem Div der reine HTML-Quellcode mit all seinen tags.

GIbt es eine Möglichkeit, z. B. über das Verwenden einer bestimmten Funktion, dass die Ausgabe im Div korrekt interpretiert wird ?

Vielen Dank im voraus,

Raphael

  1. hi,

    GIbt es eine Möglichkeit, z. B. über das Verwenden einer bestimmten Funktion, dass die Ausgabe im Div korrekt interpretiert wird ?

    https://forum.selfhtml.org/?t=86921&m=515201 ff.

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
    1. Hallo,

      sorry, so wirklich komme ich damit nicht weiter.

      So wie ich sehe, habe ich das Problem nur in Mozilla, der IE interpriert den Text tatsaechlich als HTML.

      Ich vermute der Fehler liegt in dieser Passage:

      ///////////////////////////////////////////////

      else if (document.getElementById) // W3C konform, Opera, Mozilla usw.
      {
        var hello = document.createElement('code');
        document.getElementById(id).appendChild(hello);
      }

      ///////////////////////////////////////////////////////////

      Wenn ich richtig sehe, kann ich bei dem Aufruf von "createElement" den Typ mitgeben - kann ich das vielleicht was aendern, das mein Problem loesen kann ?

      Gruss,

      Raphael

      hi,

      GIbt es eine Möglichkeit, z. B. über das Verwenden einer bestimmten Funktion, dass die Ausgabe im Div korrekt interpretiert wird ?

      https://forum.selfhtml.org/?t=86921&m=515201 ff.

      gruß,
      wahsaga

  2. Mein Problem ist, dass wenn ich per Javascript HTML-Code in dieses Div schreibe, dieser nicht als HTML Code interpretiert wird (es muesste ein Link entstehen), sondern als normale Zeichenkette.

    wie schreibst du rein? Es gibt das das zwar nicht konforme, aber verbreitete .innerHTML(), welches dir helfen sollte. Dann muss nur noch für Opera eine Eselsbrücke her. Aber sei gewarnt: dann wird wirklich ALLES interpretiert, also vielleicht auch ein Script, dass die ganze Seite zerschießt...

    1. Hallo Kai,

      das Reinschreiben ins Div erfolgt per Javascript. Dabei prüfe ich auf den Bwowser, und führe somit die entsprechende IF-Abfrage aus.

      Im Falle des Mozillas waere dies:

      if (document.getElementById) // Mozilla
      {
        var hello = document.createElement('code');
        document.getElementById(id),appendChild(hello);
      }

      Dieses "innerHTML" verwende ich ausschliesslich fuer den IE. Funktioniert das auch bei Mozilla ?

      Mein Code zum Schreiben ins DIV stammt aus einer Vorlage aus dem Netz.

      Diese Eselbrücke usw, kannst Du die mal posten ?

      Gruss,

      Raphael

      Mein Problem ist, dass wenn ich per Javascript HTML-Code in dieses Div schreibe, dieser nicht als HTML Code interpretiert wird (es muesste ein Link entstehen), sondern als normale Zeichenkette.

      wie schreibst du rein? Es gibt das das zwar nicht konforme, aber verbreitete .innerHTML(), welches dir helfen sollte. Dann muss nur noch für Opera eine Eselsbrücke her. Aber sei gewarnt: dann wird wirklich ALLES interpretiert, also vielleicht auch ein Script, dass die ganze Seite zerschießt...

      1. if (document.getElementById) // Mozilla

        eher "zeitgemäßer Browser". Das if erfällen auch MSIE, konq und Opera.

        document.getElementById(id),appendChild(hello);

        so isses eben Text und kein HTML.

        Dieses "innerHTML" verwende ich ausschliesslich fuer den IE. Funktioniert das auch bei Mozilla ?

        jup. Konq afaik ebenso. Opera keine Ahnung.

        Diese Eselbrücke usw, kannst Du die mal posten ?

        wenn ich sie wüsste ;)

    2. hi,

      Es gibt das das zwar nicht konforme, aber verbreitete .innerHTML(), welches dir helfen sollte. Dann muss nur noch für Opera eine Eselsbrücke her.

      eselsbrücke ... die sind doch zum erinneren da?

      aber vielleicht erinnert sich opera ja dann, dass er innerHTML auch kennt (tun IIRC alle modernen großen browser).

      gruß,
      wahsaga

      --
      I'll try being nicer if you'll try being smarter.