Text in ein textarea-Feld einfügen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Text in ein textarea-Feld einfügen

    Ich habe eine javascript-Funktion, mit der man Text (Newcode) in ein textarea-Feld namens message (innerhalb der Form theform) einfügen kann.

    var selectedText = "";

    function getActiveText (msg)
    {
    selectedText = (document.all) ? document.selection.createRange().text : document.getSelection();
    if (msg.createTextRange)
    msg.caretPos = document.selection.createRange().duplicate();
    return true;
    }

    function AddText (NewCode, theform) {
    if (theform.message.createTextRange && theform.message.caretPos) {
    var caretPos = theform.message.caretPos;
    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
    } else theform.message.value+=NewCode
    setfocus(theform);
    }

    Die Form ist vereinfacht wie folgt aufgebaut:

    <form>
    <textarea name="message" rows=15 cols=60 wrap="soft" onChange=getActiveText(this) onclick=getActiveText(this) onFocus=getActiveText(this)></textarea>
    </form>

    <a href="#" onclick="JavaScript:AddText ('xyz', document.message);">xyz einfügen</a>

    Der Link fügt über die Funktion einen beliebigen Text in das Feld AN DER AKTUELLEN CURSORPOSITION ein. Die Cursorposition bleibt erhalten.

    Und nun mein Problem:

    Wieso geht das unter MS Internet Explorer, aber NICHT unter Mozilla?! Dort wird der Text immer am Ende des Textfeldes eingefügt.

    Und was muss ich machen, dass es mit jedem Browser geht?
    Zuletzt geändert von Miroculix; 11.10.2002, 10:35.
    www.mi-ro.net

  • #2
    http://www.oreillynet.com/pub/a/java...s_toolbar.html

    Auszug daraus:

    ###############################################
    The code that follows uses the createRange() method of the selection object. Sadly, the selection object is only available for IE4+ users on Windows. Similar functionality should be available via the Document Object Model (DOM) (see DOM Level 2 Traversal and Range Specification) but the document.createRange() implementation is currently broken in Mozilla, specifically in its inability to manipulate text in an input element or textarea element. For further information, see Jeffrey Yates' excellent article, Using the W3C DOM Level 2 Range Object as Implemented by Mozilla. When this bug is fixed, it will be possible to write a version of the following toolbar code for Mozilla, Netscape 6+, and any other browsers running Gecko
    ###############################################

    Kommentar


    • #3
      Danke für den Link!

      Damit erklärt sich, warum es im IE geht und beim Mozilla nicht.
      Bleibt nur abzuwarten, bis die Gecko-Engine auch die createRange-Funktion beherrscht. (Ich bevorzuge nämlich lieber den Mozilla.)

      Die GUI-Toolbar die es auf der genannten Seite zu finden gibt, funktioniert unter IE 6.0 ausgezeichnet. Mit wenigen Zeilen Code macht sie schon was her! - Allerdings tut sie es wohl nur mit dem IE...
      www.mi-ro.net

      Kommentar


      • #4
        Ja mozilla ist generell ein guter Browser ... aber trotz des generellen MS hass muss man nunmal sagen das der IE den anderen doch noch einen kleinen Schritt vorraus ist ... aber es wird staendig besser mit netscape, mozilla und co.

        Kommentar

        Lädt...
        X