selektierten Text...
mihau
- javascript
Hallo!
Ich möchte, dass wenn man in einem Textfeld etwas selektiert/markiert hat und dann einen Button klickt, dass dann links und rechts von dem selektierten ein bestimmter Text eingefügt wird.
Beispiel:
Man hat in einem Textfeld z.B. "Mein Problem:" markiert. Nun drück man auf einen Button (bbcode). Danach steht nciht mehr "Mein Problem:" dort sondern z.B.: "[x]Mein Problem:[/x"] . Aber an der gleichen Stelle wo es vorher Stand.
Habe jetzt schon ziemlich lange gesucht und auch in vielen andern Foren nachgefragt aber da hatte ich kein erfolg. Deswegen will hier mal mein Glück probieren.
Es sollte auch unter allen gängigen Browser funktioniern also IE6, Opera, Mozilla, NC.
Einen Anfang hätte ich auch schon:
http://www.quirksmode.org/js/selected.html
aber das liest es nur den selektierten Text aus und da ich ein völliger JS noob bin weiß cih nciht wie ich dieses Scirpt nach meinen Wünschen ändern kann!?
thx im voraus!!
mfg mihau
Hallo mihau
http://www.quirksmode.org/js/selected.html
--> das ist doch schon mal 99% der Miete ;)
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function getSel()
{
var anfang = "hier schreibst Du Deinen Anfangstext hinein ";
var ende = "hier Schreibst Du Deinen Endtext hinein "
if (document.getSelection) txt = document.getSelection();
else if (document.selection) txt = document.selection.createRange().text;
else return;
document.forms[0].selectedtext.value = anfang + txt.replace(new RegExp('([\f\n\r\t\v ])+', 'g')," ") + ende;
}
// -->
</SCRIPT>
<CENTER>
<FORM>
<INPUT TYPE=button VALUE="Get selection" onMouseDown="getSel()">
<a href="#" onMouseDown="javascript:getSel(); return false">Get selection</a><br>
<TEXTAREA NAME="selectedtext" ROWS=5 COLS=20></TEXTAREA>
</FORM>
</CENTER>
Beachte bitte aber die Anmerkung unter
http://selfhtml.teamone.de/javascript/objekte/document.htm#get_selection
damit dieses Script zumindest in -vielen- Browsern funzelt....
Gruß aus Berlin!
eddi
Vielen, vielen dank!!
Das funktioniert schon mal super!
Bloss ist nicht ganz was ich wollte!?
Ich will ncoh, das der Restliche Text, welcher noch im Textfeld steht auch drin bleibt.
Bsp:
Im Textfeld steht: "Hallo ihr da!". nun markiert man ihr und drückt nen button. Dann steht drin: "Hallo [x]ihr[/x] da!"
Sry wenn das aus meiner Frage nciht herausging!
mfg
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function getSel()
{
var anfang = document.forms[0].selectedtext.value;
if (document.getSelection) txt = document.getSelection();
else if (document.selection) txt = document.selection.createRange().text;
else return;
document.forms[0].selectedtext.value = anfang + txt.replace(new RegExp('([\f\n\r\t\v ])+', 'g')," ");
}
// -->
</SCRIPT>
Gruß aus Berlin!
eddi
danke!, aber das script schriebt zumindest bei mir, das markierte nru ganz hinten an das Textfeld!?
und dann ist nciht so ganz das was ich wollte!
Gruß aus Waldenburg ;)
mihau