Markus Möller: HTML-Code im textarea-Feld wird interpretiert

Hallo zusammen!
Ich möchte dem Benutzer die Möglichkeit bieten, HTML-Code in ein textarea-Feld einzugeben. Anschliessend wird das ganze in einer Datenbank gespeichert. Besucht der Benutzer die Seite erneut, steht in diesem Feld dann der Code, den er eingegeben hat. Das Problem dabei ist, das bei Netscape 4.x der HTML-Code innerhalb des textarea-Tags interpretiert wird. D.h. dass die Eingabe von > beispielsweise beim nächsten mal als > dargestellt wird. Vielmehr soll aber alles so angeziegt werden, wie es eingegeben wurd. Also so, als ob es vom pre-Tag umklammert wäre.
Beim MSIE klappt das zwar, aber br-Zeilenumbrüche werden auch hier nicht gezeigt, sondern ausgeführt.
Wer kann mir sagen, wie ich den Browser dazu bekomme, den HTML-Code in textarea-Feldern nicht zu interpretieren, sondern einfach so wie er ist, anzuzeigen?!

  1. Hi,

    Wer kann mir sagen, wie ich den Browser dazu bekomme, den HTML-Code in textarea-Feldern nicht zu interpretieren, sondern einfach so wie er ist, anzuzeigen?!

    Indem du ">", "<" und "&" maskierst?
    VG
    Erik

  2. Hi,

    bei Netscape 4.x der HTML-Code innerhalb des textarea-Tags interpretiert wird.

    was, beim IE etwa nicht?! Ts, das Ding ist 'ne wahre Bug-Grube.

    Du musst sämtliche "HTML-relevanten" Zeichen, also zumindest "<" und "&" (in umgekehrter Reihenfolge, bzw. das "&" immer zuerst) durch ihre HTML-Entität ersetzen. Woher soll der Browser sonst z.B. bei Eingabe von "</textarea>" wissen, dass es sich _nicht_ um das Ende der Textarea handelt?

    Beim MSIE klappt das zwar, aber br-Zeilenumbrüche werden auch hier nicht gezeigt, sondern ausgeführt.

    Natürlich. Die meisten Tags machen dort zwar keinen Sinn, aber dennoch ist und bleibt der Inhalt einer Textarea CDATA.

    Wer kann mir sagen, wie ich den Browser dazu bekomme, den HTML-Code in textarea-Feldern nicht zu interpretieren, sondern einfach so wie er ist, anzuzeigen?!

    No way, Du kannst <textarea> nicht neu definieren. Richte Dich nach dessen Eigenschaften; liefere also den Code so, dass er wie von Dir gewünscht interpretiert wird.

    Cheatah

  3. Moin

    Ich möchte dem Benutzer die Möglichkeit bieten, HTML-Code in ein textarea-Feld einzugeben. Anschliessend wird das ganze in einer Datenbank gespeichert. Besucht der Benutzer die Seite erneut, steht in diesem Feld dann der Code, den er eingegeben hat. Das Problem dabei ist, das bei Netscape 4.x der HTML-Code innerhalb des textarea-Tags interpretiert wird. D.h. dass die Eingabe von > beispielsweise beim nächsten mal als > dargestellt wird. Vielmehr soll aber alles so angeziegt werden, wie es eingegeben wurd. Also so, als ob es vom pre-Tag umklammert wäre.
    Beim MSIE klappt das zwar, aber br-Zeilenumbrüche werden auch hier nicht gezeigt, sondern ausgeführt.
    Wer kann mir sagen, wie ich den Browser dazu bekomme, den HTML-Code in textarea-Feldern nicht zu interpretieren, sondern einfach so wie er ist, anzuzeigen?!

    Du hasst zwar nicht gesagt, wie du den Code in die Datenbank und wieder zurückbekommst (mit HTML wohl eher nicht), also gehe ich einfach mal von meiner Domäne PHP aus: Die Funktion die du suchst, heisst htmlentities().

    --
    Henryk Plötz
    Grüße aus Berlin

  4. Hi,

    Wer kann mir sagen, wie ich den Browser dazu bekomme, den HTML-Code in textarea-Feldern nicht zu interpretieren, sondern einfach so wie er ist, anzuzeigen?!

    Eventuell solltest du auf Userseite mit javascript arbeiten und zwar 2
    Mal.

    1. beim (vor dem) Absenden maskieren
    2. beim Wiederaufbau der Seite, in dem du den Text nicht direkt in
    das textarea nagelst, sondern es in eine javascript-variable schreibst,
    und dann mittels unmaskierung un das textarea parst.

    Zum maskieren könntest du escape()/unescape() verwenden, ist nicht
    platzsparend aber schnell

    bye eddie

    1. Hi,

      Eventuell solltest du auf Userseite mit javascript arbeiten

      öh... eventuell auch nicht. Nämlich dann, wenn nur ein einziges Mal jemand das ganze ohne JavaScript benutzen könnte - dann geht's nämlich so in die Hose.

      Es wird eh bereits mit serverseitigen Mitteln gearbeitet.

      Cheatah