isabel: Cursorposition in string ermitteln?

liebes forum,

gibt es eine Möglichkeit das ich mir die Cursorposition als Zahlenwert innerthalb eines strings ermitteln kann?
Mein Problem ist das ich eine Art Editor schreiben will, wobei ich an der Cursorposition neue Zeichen einfügen will, oder löschen, oder was auch immer!

Grüße
ISabel

  1. Hi,

    gibt es eine Möglichkeit das ich mir die Cursorposition als Zahlenwert innerthalb eines strings ermitteln kann?

    Nein. Ein String hat keinen Cursor, also hat dieser auch keine Position. Wo sollte in "String-Beispiel" der Cursor sein?
    Cursor gibt es z.B. bei Eingabefeldern.

    Mein Problem ist das ich eine Art Editor schreiben will, wobei ich an der Cursorposition neue Zeichen einfügen will, oder löschen, oder was auch immer!

    Mag sein, daß es im einen oder anderen Browser eine Möglichkeit gibt - eine browserübergreifende Lösung, um auf die Cursorposition innerhalb eines Eingabefeldes zuzugreifen, gibt es meines Wissens nicht.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hallo,
      Tja , wenn Du das so sagst leuchtet mir das schon ein.
      Ich werde noch mal IE spezifisch schauen, weil, die bieten auch copy und paste Funktionen an. Es muß nähmlich nur im IE laufen!

      Danke
      Isabel

      1. Hallo Isabel,

        im IE ab 5.5 (und auch im Mozilla ab V 1.3, insbesondere auch in Netscape 7.1) gibt es proprietäre JS-Eigenschaften, mit denen man sogar einen kompletten WYSIWYG-Editor realisieren kann, siehe z.B. hier:
        Crossbrwoser-Editor:
        http://www.kevinroth.com/rte/demo.htm
        Ne ganze Liste davon:
        http://www.bris.ac.uk/is/projects/cms/ttw/ttw.html
        Ein Tutorial für den MSIE:
        http://webfx.eae.net/dhtml/richedit/richedit.html

        Aber zurück zu Deinem Thema: möglicherweise gibt es eine Funktion wrapSelection(), die Dir helfen dürfte: dem (im Textfeld) markierten Text wird "vorne" und "hinten" was angefügt (z.b. Tags für Kursiv oder Fett). Dummerweise finde ich keine Doku dazu. Habe es aus dem Quellcode des Bloggers... Hm... :(

        Tschau,
        apstrakt

        --
        http://www.cafe-abstrakt.de
        1. supi und danke, das ist doch mal ne konkrete spur!

          grüße
          Isabel

      2. und weiter geht's: war ne Fehlinformation mit wrapSelection()... Die Funktion ist in einem Blogger-Script erst definiert worden. Habe mir den Code angeguckt. Erstaunlich ist, daß auch die Blogger-Leute den open source Editor von Kevin Roth zu benutzen scheinen...

        Hier ist der Code:
        // thanks massless.org [modified]
        function mozWrap(txtarea, lft, rgt) {
          var selLength = txtarea.textLength;
          var selStart = txtarea.selectionStart;
          var selEnd = txtarea.selectionEnd;
          if (selEnd==1 || selEnd==2) selEnd=selLength;
          var s1 = (txtarea.value).substring(0,selStart);
          var s2 = (txtarea.value).substring(selStart, selEnd)
          var s3 = (txtarea.value).substring(selEnd, selLength);
          txtarea.value = s1 + lft + s2 + rgt + s3;
         }

        function IEWrap(txtarea, lft, rgt) {
          strSelection = document.selection.createRange().text;
          if (strSelection!="") {
            document.selection.createRange().text = lft + strSelection + rgt;
          } else {
            txtarea.focus()
            strSelection = document.selection.createRange().text;
        //    document.selection.createRange().text = strSelection + lft + rgt;
            txtarea.value = txtarea.value + lft + rgt;
          }
         }

        function wrapSelection(txtarea, lft, rgt) {
          if (document.all) {IEWrap(txtarea, lft, rgt);}
          else if (document.getElementById) {mozWrap(txtarea, lft, rgt);}
         }

        Hilft Dir wahrscheinlich wenig? Probier es mal aus. Mir ist die verwendete Technologie rätselhaft, werde auch mit den Infos MSDN nicht schlauer...