Moin!
Wie der Titel schon sagt ist eine Fehlerkorrektur notwendig und eine Ergänzung angebracht:
<html>
<head>
<title>Einfügen von bb-Code in mehrere Textareas</title>
<script type="text/javascript">
var AktivArea;
function bb_insert(bb) {
var bb_start = '[' + bb + ']';
var bb_end = '[/' + bb + ']';
var tStart = AktivArea.selectionStart;
var tEnd = AktivArea.selectionEnd;
var insText = AktivArea.value.substring(tStart, tEnd);
// Korrektur: bb_start und bb_end waren falsch herum:
var newText = AktivArea.value.substr(0, tStart) + bb_start + insText + bb_end + AktivArea.value.substr(tEnd);
AktivArea.value = newText;
AktivArea.focus();
// Ergänzung: Setzen der Auswahl:
if (0 > AktivArea.selectionEnd - AktivArea.selectionStart) {
AktivArea.selectionEnd = tEnd + 6 + bb.length;
} else {
AktivArea.selectionStart = tStart + 2 + bb.length;
AktivArea.selectionEnd = AktivArea.selectionStart;
}
// Ende der Ergänzung
return false;
}
</script>
</head>
<body>
<h1>Demo: Einfügen von bb-Code in meherere Textareas</h1>
<form name="formular" action="">
<button onclick="return bb_insert('b');">bold</button><button onclick="return bb_insert('i')">italic</button></b><br>
<textarea id="a1" onfocus="AktivArea=this;"></textarea><br>
<textarea id="a2" onfocus="AktivArea=this;"></textarea>
</form>
</body>
</html>
Jörg Reinholz