Nochmal hallo,
bevor der Thread im Archiv verschwindet, hier meine Lösung (funktioniert mit Netscape/Mozilla, IE):
http://alex.ilosuna.org/test/textarea.html
Grüße, Alex
P.S.: falls der Link mal nicht mehr existieren sollte:
<html>
<head>
<script type="text/javascript">
<!--
function bbcode(v)
{
if (document.selection) // für IE
{
var str = document.selection.createRange().text;
document.form_name.textarea_name.focus();
var sel = document.selection.createRange();
sel.text = "[" + v + "]" + str + "[/" + v + "]";
return;
}
else if (document.getElementById && !document.all) // für Mozilla
{
var txtarea = document.forms['form_name'].elements['textarea_name'];
var selLength = txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
if (selEnd == 1 || selEnd == 2)
selEnd = selLength;
var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
return;
}
else input('[' + v + '][/' + v + '] ');
}
function input(what)
{
if (document.form_name.textarea_name.createTextRange)
{
document.form_name.textarea_name.focus();
document.selection.createRange().duplicate().text = what;
}
else if (document.getElementById && !document.all) // Mozilla
{
var tarea = document.forms['form_name'].elements['textarea_name'];
var selEnd = tarea.selectionEnd;
var txtLen = tarea.value.length;
var txtbefore = tarea.value.substring(0,selEnd);
var txtafter = tarea.value.substring(selEnd, txtLen);
tarea.value = txtbefore + what + txtafter;
}
else
{
document.entryform.text.value += what;
}
}
//-->
</script>
<title>Textarea-Test</title>
</head>
<body>
<h1>Einfügen von BB-Code und Smilies mit JavaScript</h1>
<p>Funktionoert mit Netscape/Mozilla und IE. Hier werden die BB-Codes um
markierten Text eingefügt und die Smilies an der Curserposition. Mit anderen
Browsern werden die Befehle am Ende eingefügt.</p>
<form name="form_name" action="" method="">
BB-Code:
[ <a href="javascript:bbcode('b');">fett</a> ]
[ <a href="javascript:bbcode('i');">kursiv</a> ]
[ <a href="javascript:bbcode('url');">URL</a> ]
[ <a href="javascript:bbcode('img');">Bild</a> ]
Smilies:
[ <a href="javascript:input(':-) ');">smile</a> ]
[ <a href="javascript:input(';-) ');">wink</a> ]
[ <a href="javascript:input(':-( ');">frown</a> ]<br>
<textarea rows="20" cols="80" name="textarea_name"></textarea><br>
<input type="reset">
</form>
</body>
</html>