$xNeTworKx: auf selektierten Text zugreifen?

Grüß euch,
Gibt es mit Javascript irgendwie eine Möglichkeit, einen in einem <textarea> Feld mit der Maus markierten Text irgendwie zu erkennen?
Ich glaube fast nicht, aber ich will ganz sicher gehen, somit frage ich mal.

$xNeTworKx.

--
Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.
  1. Hallo $xNeTworKx,

    hab grad das hier gefunden:

    http://forum.de.selfhtml.org/archiv/2001/7/26361/

    Schöne Grüße aus Köln-Ehrenfeld,

    Elya

    --
    We are still confused, but on a higher level.
    1. Hallo,
      vielen Dank. ich habe ständig nach "auf selektierten Text zugreifen" gesucht und wahrscheinlich deswegen zuerst nichts gefunden, aber das, was ich zuerst gefunden habe, brauche ich jetzt auch :)  (http://forum.de.selfhtml.org/archiv/2002/8/19281/)

      $xNeTworKx.

      --
      Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.
      1. Hi nochmal,

        Es scheint irgendwie, ob Opera (7)keine von beiden Methoden akzeptiert. Ich nehme mal an, bei Opera gibt es kein Workaround, oder doch?

        $xNeTworKx.

        --
        Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.
  2. Nachtrag:
    Ich bin draufgekommen, wenn man 3 gleiche Sätze in das Formularfeld eingibt und im letzten Satz ein Wort transformieren will, wird das erstgefundene Wort geändert, dH im ersten Satz, obwohl der letzte Satz markiert wurde? Warum ist das so und was kann ich da tun?

    $xneTworKx.

    --
    Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.
    1. Ich habe den LInk vergessen:

      http://test.acid4u.com/selektierten_text_aendern.html

      --
      Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.
    2. Moin $xneTworKx,

      Vermutung: Variable textstring hat einen Wert zugewiesen bekommen, aus der Markierung. Dann wird in dem Formular-Feld dieser Wert gesucht, und beim _ersten_ Auftauchen ersetzt - und dann ist die Funktion abgearbeitet.

      Ich würde mal probieren, innerhalb der Funktion dem Textstring temporär einen anderen Wert zuzuweisen (idealerweise gleiche Zeichenkettenlänge) und dann zu ersetzen ...? Sollte eigentlich nicht auffallen. Ist aber nur so eine Idee am frühen Morgen nach der ersten Tasse Kaffee und 5 Stunden Schlaf ;-) , schreib mal ob's klappt.

      Schöne Grüße aus Köln-Ehrenfeld,

      Elya

      --
      We are still confused, but on a higher level.
    3. Hallo $xNeTworKx,

      Ich bin draufgekommen, wenn man 3 gleiche Sätze in das Formularfeld eingibt und im letzten Satz ein Wort transformieren will, wird das erstgefundene Wort geändert, dH im ersten Satz, obwohl der letzte Satz markiert wurde? Warum ist das so und was kann ich da tun?

      Elya hat Recht, du führst ein replace() im gesamten Text durch, und das ist völlig unabhängig von deiner Markierung. Du kannst aber im IE direkt auf die Markierung zugreifen, und im Mozilla hast du die Endpunkte und kommst mit substring weiter. Außerdem würde ich nicht eine Unterscheidung nach navigator.appName machen, sondern die Objekte abfragen, die ich benutzen will. Etwa so:

      var textarea = document.getElementById('textarea');
      var neuerText = "Hallo";

      if (document.selection) // IE4+
      {
          var markierung = document.selection.createRange();
          if (markierung.parentElement() == textarea && markierung.text != "")
              markierung.text = neuerText;
      }
      else if (textarea.setSelectionRange) // Moz 1.3+
      {
          if (textarea.selectionStart != textarea.selectionEnd)
              textarea.value = textarea.value.substring(0, textarea.selectionStart) + neuerText + textarea.value.substring(textarea.selectionEnd, textarea.value.length);
      }

      Es sind natürlich beides proprietäre Lösungen. Der IE kann das seit vielen Jahren, und bei Mozilla hat man offenbar erkannt, dass man auf die Schnarchnasen vom W3C nicht immer warten kann.

      Grüße, Stefan

      1. Hallo,
        sorry, aber mit diesem Code funktioniert leider gar nichts mehr. Ich werde mich einfach noch ein bißchen herumspielen, vielleicht bekomme ich es noch hin.

        $xNeTworKx.

        --
        Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.
        1. Hallo $xNeTworKx,

          sorry, aber mit diesem Code funktioniert leider gar nichts mehr.

          Du musst ihn natürlich richtig einsetzen, z.B. die Variable textarea muss auch deine Textarea ansprechen, es muss alles in einer Funktion stehen usw...
          Aber ich denke, das kriegst du schon hin.

          Grüße, Stefan