BBCODES und Textarea

Lektor21

Erfahrenes Mitglied
Hallo!

Also ich füge einen BBCODE per Button in ein Textarea ein;

HTML:
<input type="button" value="B" onclick="cur_ins(this.form.text, '', '', 0);" class="button" style="width: 50px; color: #150185;">
<input type="button" value="U" onclick="cur_ins(this.form.text, '', '', 0);" class="button" style="width: 50px; color: #150185; text-decoration: underline;">
<input type="button" value="I" onclick="cur_ins(this.form.text, '', '', 0);" class="button" style="width: 50px; color: #150185; font-style: italic;">
<textarea name="lizenz" id="text" style="width: 100%; height: 300px; border-width: 1px; border-style: solid; border-color: #ff7b10; background-color: #e9e9e9; font-family: Arial; font-size: 13px; color: #150185;"><?php echo $lizenz; ?></textarea>

Nur wenn ich einen BBCODE per onClick eingefügt habe, muss ich wieder bis an die Stelle scrollen wo ich stehen geblieben bin. Der Cursor ist aber noch dort!?

Wie kann ich realisieren, dass ich nicht wieder von oben runterscrollen muss?


Hier ist der Javacode;


HTML:
function cur_ins(field, startTag, endTag, offset) 
{

field.focus();
if (document.getSelection) {
selStart = field.selectionStart;
selEnd = field.selectionEnd;
text = field.value.substring(selStart, selEnd);
field.value = field.value.substring(0, selStart) + startTag + text + endTag + field.value.substring(selEnd);
if (text.length > 0) {
if (offset != 0) {
field.selectionStart = selStart + startTag.length + text.length - offset;
} else {
field.selectionStart = selStart + startTag.length + text.length + endTag.length;
}
} else {
field.selectionStart = selStart + startTag.length;
}
field.selectionEnd = field.selectionStart;
} else 
if (document.selection) { 
marker = document.selection.createRange();
text = marker.text;
marker.text = startTag+text+endTag;
marker = document.selection.createRange();
if (text.length > 0) {
if (offset != 0) {
marker.move('character', startTag.length + text.length - offset);
} else {
marker.move('character', startTag.length + text.length + endTag.length + offset);
}
} else {
marker.move('character', -(endTag.length));
}
marker.select();
}
}
 
Du mußt nicht runterscrollen!
Nehmen wir mal ein du willst deinen Namen fett schreiben und der Text ist schon umfangreicher als die Textarea.
Klick auf z.b. "B" für bold, in diesem Moment befindet sich der Text wieder in der oberen Position. Das ist deine vermeindliche Ausgangssituation. Nun tipp auf das "L" von "Lektor21" und du bist mitten im BBCode!
Das ist also nur eine Umgewöhnung, mehr nicht.

greetz
azoo
 

Neue Beiträge

Zurück