Michael: selectionStart, selectionEnd

Hallo,

ich stehe vor einem Problem. Ich möchte aus einem Textfeld per Mausklick selektierten Text editieren (Fett, Kursiv, etc.) dieses gelingt mir im IE problemlos mit der Methode:

--> document.selection.createRange().text  usw...

im Netscape >7.0 scheint dieses nicht so einfach zu sein. ich habe hier im Forum schon einige Threads zum Thema gelesen aber leider keine funktionierenden Beispiele gefunden. Es soll angeblich mit diesem Script funktionieren:

<script>
var txtarea = document.forms['FORM'].elements['TEXTAREA'];
     var selLength = txtarea.value.length;
     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 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
  return;
</script>

leider wird KEIN Wert in die Variable "selStart" bzw. "selEnd" übergeben. Gebe ich zur Kontrolle diese über Alert() aus, zeigt mir der Browser "undefined".

In einigen anderen Threads wird behauptet, es geht mit MozBrowsern gar nicht?!?

Hat jemand eine Idee? Vielen Dank  Cu Michael

  1. Hi,

    im Netscape >7.0 scheint dieses nicht so einfach zu sein. ich habe hier im Forum schon einige Threads zum Thema gelesen aber leider keine funktionierenden Beispiele gefunden. Es soll angeblich mit diesem Script funktionieren:

    <script>
    var txtarea = document.forms['FORM'].elements['TEXTAREA'];
         var selLength = txtarea.value.length;
         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 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
      return;
    </script>

    leider wird KEIN Wert in die Variable "selStart" bzw. "selEnd" übergeben. Gebe ich zur Kontrolle diese über Alert() aus, zeigt mir der Browser "undefined".

    selectionStart/End funktioniert in einer Textarea ab Mozilla 1.3 und Netscape 7.1. Der Code oben ist aber natürlich nur sinnvoll, wenn er in einer Funktion steht, die aufgerufen wird, nachdem in der Textarea was markiert wurde.

    Ein funktionsfähiges Beispiel findest du z.B. hier: http://groups.google.com/groups?hl=de&lr=lang_de&ie=UTF-8&selm=3E75CFCB.9080808%40t-online.de&rnum=2

    Grüße, Stefan