Text in ein Textfeld an eine bestimmte Stelle einfügen

  • Hallo zusammen,

    ich habe eine Frage bezüglich JavaScript.
    Und zwar möchte ich per Knopfdruck einen bestimmten Text (z.B. blah) in eine html-textarea an der Stelle einfügen, wo sich gerade der Cursor befindet.
    Also genau wie bei den Smileys hier im Forum!
    Da ich mich mit JavaScript leider nicht gut auskenne, kann ich den Quellcode nicht richtig von hier in meine html-Datei übertragen.
    Das Formular in dem die textarea steht hat den Namen "form" (name="form") und die textarea hat den Namen und die id "artikelbeschreibung".

    Bei dem Skript was ich jetzt benutze fügt er den Text immer nur ans Ende des Textes ein. :-/

    Wäre super wenn da jemand von euch weiterhelfen könnte. :)


    liebe Grüße,

    Tim

  • Hat sich schon erledigt.
    Ich habe weiter gesucht und in einem anderen Forum eine Lösung gefunden.

    Hier die function (falls sie jemanden interessiert):

    function Hinzufuegen(text,sId){
    if (navigator.appName == 'Microsoft Internet Explorer'){
    document.form.artikelbeschreibung.focus();
    document.form.artikelbeschreibung.caretPos = document.selection.createRange();

    if (document.form.artikelbeschreibung.createTextRange && document.form.artikelbeschreibung.caretPos){
    var caretPos = document.form.artikelbeschreibung.caretPos;
    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
    document.form.artikelbeschreibung.focus();
    }
    else{
    document.form.artikelbeschreibung.value += text;
    document.form.artikelbeschreibung.focus();
    }
    }
    else{
    obj = document.getElementById(sId);
    if (null!=obj && null!=obj.selectionStart){
    var pos;
    pos= obj.selectionStart;
    obj.value = obj.value.substring(0, obj.selectionStart)+ text+ obj.value.substring(obj.selectionEnd, obj.value.length);
    obj.selectionStart = pos+text.length;
    obj.selectionEnd = obj.selectionStart;
    }
    }
    }


    Vielleicht kennt ja noch jemand von euch eine elegantere Lösung - dann einfach loslegen :)