• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

TEXTAREA-->text einfügen

boblgum

New member
hi da im moment "suchen" nicht funzt, stelle ich die frage auf die gefahr hin, daß sie schon jemand irgendwann gestellt hat.

Frage:
wie kann ich ausgewählten teil des textes in einer textarea und nur den ausgewählten teil per klick änder?

z.B.
1. user tippt ein "das ist ein test"
2. user markiert das wort "test" und klickt auf einen button(bild-button)
3. nun steht in der textarea "das ist ein <b>test</b>

daß man text einfügen kann, weiß ich, aber wie verändere ich nur den markierten teil?
 
Das geht sehr wohl, funzt aber nur mit dem IE 4 oder höher... ;(


<script language="JavaScript" type="text/javascript">

<!-- Kommentare für Browser, die kein Javascript unterstützen
// funktioniert nur im IE 4+

// Übergabeparameter:
// - form : Formularname
// - resultfield : Textareaname
// - tag : einzufügendes Tag

function insert_tags(form, resultfield, tag)
{
// Kompletter Inhalt des Textarea-Feldes
var FullString = resultfield.value;

// Ausgewählter Bereich als String
var SelectedString = document.selection.createRange().text;
if (!SelectedString)
alert("Keine Markierung!")
else
{
// Erstellung eines regulären Ausdrucks für den ausgewählten Bereich
var RegExpSelect = new RegExp(SelectedString, "gi")

// Hinzufügen der HTML-Tags
var ReplaceString = "<"+tag+">"+SelectedString+"</"+tag+">";

// Neuer String (kompl. Textarea-Feld)
var NewString = FullString.replace (RegExpSelect, ReplaceString);

// Text in den Textareabereich schreiben
resultfield.value = NewString;
}
document.formularname.textareaname.focus();
}

im Formular wird die Funktion dann aufgerufen...

<input type="button" name="bold" value="Fett" onClick="javascript:insert_tags(formularname,textareaname,'b')">

funktioniert natürlich auch mit "kursiv" usw. (Tags, die ein abschließendes Tag haben...)


Gruß, Arthur
 
:) Ich bin auch kein Experte, aber ich habe die Funktion vor Kurzem selbst mal in einem Projekt gebraucht... ;)

Aber Du hast auch ganz schön viele Posts...
 
Das mit den Posts hat nicht viel zu sagen, es gibt einige "alte" Members hier, die haben Massen an Posts, aber man entdeckt irgendwie nie was ordentliches von denen im Forum, andererseits habe ich Member gesehen die neu sind und echt sehr gute Antworten geben (so wie du eben)
 
thx, freut mich wenn ihr mit meinen antworten was anfangen könnt.

hast Du vielleicht eine Idee für mein Problem??
ich muss ne Funktion schreiben, die einen HTML-Tag in ein Textarea-Feld einfügt, ABER an der Stelle wo sich der Cursor befindet. Wie geht das? An den bestehenden Text anfügen is simpel. Aber wie kann man die Cursorposition feststellen und genau da einfügen...???

Bin auch für Tips und Hinweise auf bestehende Scripte sehr dankbar!

Gruß, Arthur
 
@ arci
Vor nicht all zu langer Zeit hatte hier mal einer die Frage gestellt, ob man den
selektierten Text auslesen kann. Es wurde keine Lösung gefunden. Du hast hier
eine Lösung präsentiert. Danke.

@Crying Man
Du hast vollkommen recht, die Anzahl der Post sind uninteressant (Ich war mal
anderer Meinung). Die wirklich helfenden Antworten sind entscheidend.
Viele sind aber auch im Smalltalk oder Funbereich sehr aktiv.

Gruß Steffen
 
@Arci,

die einzigste Möglichkeit die ich gefunden habe ist aus dem woltlab-Forum http://www.woltlab.de.

Habe die Templates mal zusammen gebaut und gelöscht was nicht gebraucht wird.

Code kann hier auch zwischen bereits geschreibenen Text eingefügt werden. An gewünschte Stelle im Text klicken und dann einen der drei Buttons anklicken in das Prompt-Fenster Text eingeben und OK.

Hoffe das ich helfen konnte.

PS: wollte deine Mail beantworten ging leider nicht Mail kam wieder zurück.
 

Anhänge

  • textarea.zip
    1,4 KB · Aufrufe: 87
Danke René und Steffen für die Antworten, ich glaube da ist viel dabei, was ich brauchen kann!
Übrigens, eine Mail von Dir ist angekommen, René
 
Hoi,
da muss ich den Thread mal aus der Versenkung holen.
Ich hab den Code von arci bei mir eingebaut, aber es gibt 2 Probleme:
1. Ist ein Frage- oder Ausrufezeichen unter dem markierten Text, funktioniert die Tag-Setzung nicht.
2. Markiert man z.B. Hallo und setzt Tags hin, werden hinter jedes vorkommende Hallo in der textarea die Tags eingefügt.

Wie könnte man die Bugs beheben?
So viel zu mir: Ich kann 0, wirklich gar nichts in Java(script).

Thx im voraus!

MfG
 
klasse sache

arci's script is vieleicht nich gut für n forum aber um so besser um werte in texten bzw(vorzugsweise) scripts schnell und einfach zu verändern. war mir gestern sehr hilfreich *froi* ich hät sonst stunden gebraucht.
 
ähnlich lösung

hi leute

also erstma danke für das thread. hat mir n ganzes ende weitergeholfen. allerdings hab ich dann noch ne andere, wenn auch ähnliche funktion gefunden, die noch ein bißchen besser ist.


function format_sel(v)
{
var str = document.selection.createRange().text;
document.dein_formular.dein_textarea.focus();
var sel = document.selection.createRange();
sel.text = "<" + v + ">" + str + "</" + v + ">";


irgendein_textspeicherplatz = window.document.dein_formular.dein_textarea.value;
window.document.dein_formular.irgendein_anderes_formularobjekt.focus();
window.document.dein_formular.dein_textarea.focus();
window.document.dein_formular.dein_textarea.value = irgendein_textspeicherplatz ;


return;
}

übergeben wird hier nur der wert für den einzusetzenden html-tag. diese funktion hat den vorteil, dass sie die von GWC beschriebenen bugs vermeidet. ich hab dann noch die 4 zeilen hinzugefügt. durch die vorübergehende auslagerung des textarea-inhalts und den kurzen focuswechsel wird erreicht, dass die markierung in dem textarea wieder aufgehoben wird und am ende der cursor in dem textarea am schluß und nicht am anfang des textes steht.


vielleicht kann ja noch jemand anderes was damit anfangen ;)

ciao and take care. Tomcat :D
 
@René

Dein gemachtes Script in der .zip Datei ist echt cool,
kannst du mir sagen, wie man so einen Button darunter stellt,
der sich z.b. Abschicken nennt und wenn man da drauf klickt,
steht unten drunter dann das?

Also dass es die Texte speichert und gleich darunter "postet".
Und dann auch noch so ein kleines Textfeld für den Namen, eMailadresse und Betreff! :)
Das wäre echt toll von dir :)

Viele Grüße,
Florian

-------
gc.webmaster@web.de
msn: starwarsfan2003@hotmail.com
 
Original geschrieben von gamecube-guide
@René

Dein gemachtes Script in der .zip Datei ist echt cool,
kannst du mir sagen, wie man so einen Button darunter stellt,
der sich z.b. Abschicken nennt und wenn man da drauf klickt,
steht unten drunter dann das?

Also dass es die Texte speichert und gleich darunter "postet".
Und dann auch noch so ein kleines Textfeld für den Namen, eMailadresse und Betreff! :)
Das wäre echt toll von dir :)

Viele Grüße,
Florian

-------
gc.webmaster@web.de
msn: starwarsfan2003@hotmail.com

Wollte nur noch mal das Thema weiter nach oben schieben,
denn es wäre sehr toll wenn mir René dabei helfen könnte :)
Kann es sein dass er im Urlaub ist oder nur manchmal ins I-Net kommt? :(
Hab schon eine eMail und PN geschrieben....
Aber mir könnte auch jemand anderes helfen, was echt toll wäre! :)
 
@ tomcat: wie würdest Du es lösen, wenn...

... du mehrere textareas hast, in welchen Du tags per Knopfdruck einfügen möchtest?

dank & gruss

philipp
 
Zurück
Oben