Startpunkt in Textarea definieren

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

  • Startpunkt in Textarea definieren

    Hallo,

    folgendes Problem: Ich habe eine Textarea und mit Hilfe von Javascript zähle ich jetzt die Anzahl an Wörtern in der Textarea, dazu wird der Zähl-Funktion bei onKeyUp ausgeführt.

    Jetzt hat der FireFox allerdings eine Macke, dass jedes mal wenn er onKeyUp ausführt er die Position der Auswahl ändert!

    Beispiel:

    Ich will ABCD Tippen, dann passiert folgendes:

    A (Zeiger Position theoretisch hier)

    onKeyUp

    (Zeiger Position zurückgesetzt) A

    B (Zeiger Position zurückgesetzt) A

    onKeyUp

    (Zeiger Position zurückgesetzt) BA

    So, dass ich am Ende nicht ABCD bekomme sondern DCBA.

    Gibt es eine Möglichkeit die aktuelle Position der Auswahl in der Textarea zu ändern? (muss nur im FireFox funktionieren, IE und Chrome haben keine Probleme).

    Ich hoffe ich habe mein Problem verständlich rüber gebracht.

  • #2
    Hallo,

    das Problem muss woanders liegen, denn die von dir beschriebene Macke hat der Firefox nicht. Kann es sein, dass du die value-Eigenschaft der textarea manipulierst? Vom Zählen alleine wird der Cursor jedenfalls nicht bewegt. (Onlinebeispiel?)

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Ich habe TinyMCE eingebaut gehabt. Habe das Problem mittlerweile aber gelöst:

      PHP-Code:
      function doGetCaretPosition (rleben) {
          var 
      CaretPos 0;    // IE Support
          
      if (document.selection) {
          
      rleben.focus ();
              var 
      Sel document.selection.createRange ();
              
      Sel.moveStart ('character', -rleben.value.length);
              
      CaretPos Sel.text.length;
          }
          
      // Firefox support
          
      else if (rleben.selectionStart || rleben.selectionStart == '0')
              
      CaretPos rleben.selectionStart;
          return (
      CaretPos);
      }
      function 
      setCaretPosition(rlebenpos){
          if(
      rleben.setSelectionRange)
          {
              
      rleben.focus();
              
      rleben.setSelectionRange(pos,pos);
          }
          else if (
      rleben.createTextRange) {
              var 
      range rleben.createTextRange();
              
      range.collapse(true);
              
      range.moveEnd('character'pos);
              
      range.moveStart('character'pos);
              
      range.select();
          } 
      und beim onkeyup dann gleich noch:

      PHP-Code:
      setCaretPosition(100000,no); 

      Kommentar

      Lädt...
      X