haltich: BB Code in mehrere textfelder

Hi,
Ich habe folgendes problem:
ich habe eine Seite mit mehreren textareas in diese ich mittels klick auf einen button BB Codes einfügen möchte. Soweit so gut wenn ich eine textarea habe futzt das prima einen namen ich weis wo ichs eintragen muss. (Benutze übringens diesen code, bis jetzt unverändert: http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/)
Es ist ja ein leichtes dieser funktion so zu schreiben, dass man ihr die Textarea die sie ändern sonn übergibt.
Nun zum wirklichen Problem kann ich irgendwie feststellen welche textarea gerade bearbeitet wird in welcher sich der Cursor befindet?
mit vielen dank für hilfe,
haltich

  1. Lieber haltich,

    Du kannst jeder textarea ein onfocus-Event geben, welches dafür sorgt, dass Deine Funktion "weiß", in welcher textarea Du Dich gerade befindest.

    Beispiel:

    function init() {  
        var textareas = document.getElementsByTagName("textarea");  
        var i;  
      
        for (i = 0; i < textareas.length; i++) {  
            textareas[i].onfocus = function () {  
                 // trägt eine Referenz auf aktive textarea in diese globale Variablen ein:  
                window.aktiveTextArea = this;  
            };  
        }  
    }
    

    Nun müsstest Du nur die Einfügefunktion etwas abändern:

    function insert(aTag, eTag) {  
        var input = window.aktiveTextArea;  
      
        if (!input) {  
            // War noch keine Textarea aktiviert worden? Erste textarea benutzen!  
            input = document.getElementsByTagName("textarea")[0];  
        }  
    
    

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hi felix riesterer,
      cool klappt da siet man mal was passiert, wenn man den falschen weg einschlagen will und nach der textarea mit couser suchen will. ;)
      haltich

      1. hi,
        Blöde frage aber so müste es doch eigentlich  für inputs gehen oder?

          
        function init_input() {  
            var inputs = document.getElementsByTagName("input");  
            var i;  
          
            for (i = 0; i < inputs.length; i++) {  
                inputs[i].onfocus = function () {  
                    window.aktiveTextArea = this; //Name stimmt nich mer so ganz  
                };  
            }  
        }  
        
        

        haltich

        1. Lieber haltich,

          var inputs = document.getElementsByTagName("input");

          das kann probleme mit den verschiedenen Typen von <input /> geben. Was macht Dein Script bei <input type="password" /> oder gar bei <input type="checkbox" />?

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. hi,
            Was macht Dein Script bei <input type="password" /> oder gar bei <input type="checkbox" />?

            das heißt ich könnte den allen ne class verpassen und über die aufrufen oder?
            Das heist in html hab ich mein input:
            <input type="text" class="fuerMeinScript" />
            Und in Javascript:
            var inputs = document.getElementsByClass("fuerMeinScript");

            haltich

            1. Lieber haltich,

              Das heist in html hab ich mein input:
              <input type="text" class="fuerMeinScript" />
              Und in Javascript:
              var inputs = document.getElementsByClass("fuerMeinScript");

              naja, fast. Die Funktion getElementsByClass existiert so im Sprachstandard nicht. Diese müsstest Du Dir selbst schreiben. Dazu gibt es bereits einige Threads im Archiv.

              Außerdem könntest Du ja prüfen, welchen Typs die gefundenen input-Elemente sind, um nur bestimmte zuzulassen.

              var inputs = document.getElementsByTagName("input");  
              var i;  
                
              for (i = 0; i < inputs.length; i++) {  
                  switch (inputs[i].type) {  
                      case "text":  
                      case "password":  
                          // tue was mit diesen inputs  
                      break;  
                  }  
              }
              

              Liebe Grüße aus Ellwangen,

              Felix Riesterer.

              --
              ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
              1. hi,
                cool klappt jez alles, ich denke, dass das erstmal alles war.

                haltich