HTML CODE in Textarea abbilden lassen
Alepos
- javascript
0 Uli0 Christoph Schnauß0 maz
Hallo und Hilfe.
Ich habe ein Problem das anscheinend noch keiner im Internet angesprochen zu schein hat. Und zwar geht es um Fogendes.
Ich möchte in einer Textarea HTML Code darstellen lassen.
Ich arbeite an einem CMS Tool das es dem User ermöglichen soll die Schrift nach seinen Wünschen zu formatieren. Das klapt auch schon ganz gut, nur fügt er mir in die Textarea halt die entsprechenden Tags ein und erzeugt so für den User ein Code Chaos das er nicht durchblicken kann.
Erbitte schnelstmögliche Hilfe da ich schon sehr lange an dem Problem drannsitze.
Hier der Code:
<script type="text/javascript">
<!--
function insert(aTag, eTag) {
var input = document.forms['formular'].elements['content'];
input.focus();
/* für Internet Explorer */
if(typeof document.selection != 'undefined') {
/* Einfügen des Formatierungscodes */
var range = document.selection.createRange();
var insText = range.text;
range.text = aTag + insText + eTag;
/* Anpassen der Cursorposition */
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -eTag.length);
} else {
range.moveStart('character', aTag.length + insText.length + eTag.length);
}
range.select();
}
/* für neuere auf Gecko basierende Browser */
else if(typeof input.selectionStart != 'undefined')
{
/* Einfügen des Formatierungscodes */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
/* Anpassen der Cursorposition */
var pos;
if (insText.length == 0) {
pos = start + aTag.length;
} else {
pos = start + aTag.length + insText.length + eTag.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
/* für die übrigen Browser */
else
{
/* Abfrage der Einfügeposition */
var pos;
var re = new RegExp('[1]{0,3}$');
while(!re.test(pos)) {
pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
}
if(pos > input.value.length) {
pos = input.value.length;
}
/* Einfügen des Formatierungscodes */
var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
}
}
//-->
</script>
<script language="javascript">
function closeWindow()
{
self.close();
}
</script>
<input type="image" alt="Fett" src="images/icons/bold.gif" onClick="insert('<b>', '</b>')">
<textarea class="textarea" id="textarea" name="content">
<%=strNew%></textarea>
0-9 ↩︎
Hi,
was du suchst ist ein WYSIWYG-Editor
HTML-Area kann ich nur empfehlen.
Gruß
Uli
hallo,
Ich habe ein Problem das anscheinend noch keiner im Internet angesprochen zu schein hat.
Oh. Ich hab das Internet hier auf einer Diskette, ich schau gleich mal nach.
Ich möchte in einer Textarea HTML Code darstellen lassen.
Ich arbeite an einem CMS Tool [...] nur fügt er mir in die Textarea halt die entsprechenden Tags ein und erzeugt so für den User ein Code Chaos das er nicht durchblicken kann.
Ähm ,ja, was nun: sollen die "tags" erscheinen oder nicht?
Zweite Frage: hältst du es für eine gute Idee, das mit Javascript zu machen? Mit Javascript läßt sich nichts speichern, das heißt, was deine Benutzer auch tun, bleibt im (flüchtigen) Speicher und ist nach dem Verlassen der Seite weg. Es gibt allerdings Konstruktionen mit Javascript, die ein paar JScript-Zusätze verwenden, dann gehts, wenn auch etwas holprig.
Günstiger ist es, wenn du gleich mit einer Servertechnologie arbeitest, Perl oder PHP bieten sich da an. Aber in allen Fällen wirst du kaum um den Einsatz von Regulären Ausdrücken herumkommen.
Grüße aus Berlin
Christoph S.
Grundlage für Zitat #362.
Hallo
Ich möchte in einer Textarea HTML Code darstellen lassen.
Textareas stellen auch den Quellcode dar, ohne diesen zu interpretieren. Wenn Du einen ähnlichen Effekt haben sillst, würde ich eine DIV-Box benutzen, die kannst Du aussehen lassen wie eine Textarea, aber HTML-Code wird darin ausgeführt. Allerdings kann keiner In Deine DIV Boxen reinschreiben und absenden, wie in eine textarea. Wenn es aber nur zur Anicht dient, wirds reichen.