HTML-Code im textarea-Feld wird interpretiert
Markus Möller
- html
0 Erik0 Cheatah0 Henryk Plötz0 Ed X0 Cheatah
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?!
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
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
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
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
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