Markierten Text aendern ...

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

  • Markierten Text aendern ...

    Nun was ich hier frage ist wohl groessten-Teils ein Java-Script Problem aber eventuell geht da ja was mit php, denn mit js krieg ich es nicht so hin wie es soll.

    Ich moechte in einer TextArea etwas markieren, dann auf einen Button druecken und dann soll das markierte Wort beispielsweise in irgendeiner weise veraendert werden (z.B. in HTML-Tags gesetzt werden).
    Das markierte Wort bekomm ich mit "document.selection.createRange().text" und mit der javascript Funktion "replace()" kann ich dann in der gesamten Textarea das Wort ersetzen lassen.

    Das funktioniert soweit auch, nur das Problem ist ganz einfach das immer nur das erste Wort in der Textarea geaendert wird, also wenn da 3 mal "test" steht und das dritte markiert wird, wird nur das erste veraendert, da die replace funktion keinen Positionsparameter hat. Desweiteren wuesste ich auch nicht so recht wie man die Position des markieren Wortes in der Textarea bekommt.

    Geht da irgendwas mit php oder mit js damit das so funktioniert wie man es auch erwartet?

    Dank im Vorraus.

  • #2
    Hier uebrigens der Quellcode ... kommt nur teilweise von mir. Einiges hab ich aus anderen Foren uebernommen:

    PHP-Code:
    <html><head><title>Test</title>
    <
    script type="text/javascript">
    <!--

    function 
    AddText(NewCode) {
           
    document.bla.message.value NewCode;
        
    document.bla.message.focus();
    }
       
    function 
    macheFett() {
       if (
    window.getSelectionalert(window.getSelection());
       else if (
    document.getSelectionalert(document.getSelection());
       else if (
    document.selection) {
         
    document.selection.createRange().text;
        var 
    vormals document.bla.message.value;
        var 
    jetzt vormals.replace(x,"[b]"+x+"[/b]");
        
    AddText(jetzt);
       }
    }

    //-->
    </script>
    </
    head><body>
    Markieren und auf Fett klicken ... dann wird alles schoen:
    <
    form name=bla>
    <
    a href="javascript:macheFett()">Fett</a>

    <
    textarea name="message" rows=12 cols=52>
    </
    textarea>

    </
    form>
    </
    body></html

    Kommentar


    • #3
      hi,

      vielleicht solltest du lieber mit iframes statt mit textarea arbeiten:

      http://www.siteexperts.com/tips/contents/ts12/page1.asp

      Kommentar


      • #4
        Die werden aber leider nicht von allen Browsern unterstuetzt ...

        Kommentar


        • #5
          das ist richtig, aber document.createRange() wird meines wissens auch nicht von allen Browsern unterstützt:

          http://www.oreillynet.com/pub/a/java...s_toolbar.html

          Kommentar


          • #6
            Jo in dem Link steckte die Loesung ...

            VIELEN DANK !!!


            Hier wie es nun funktioniert:

            PHP-Code:
            <html><head><title>Test</title>
            <
            script type="text/javascript">
            <!--

               
            function 
            macheFett(v) {
               if (
            window.getSelectionalert(window.getSelection());
               else if (
            document.getSelectionalert(document.getSelection());
               else if (
            document.selection) {
                    var 
            str document.selection.createRange().text;
                    
            document.bla.message.focus();
                    var 
            sel document.selection.createRange();
                    
            sel.text "<" ">" str "</" ">";
               }
            }

            //-->
            </script>
            </
            head><body>
            Markieren und auf Fett klicken ... dann wird alles schoen:
            <
            form name=bla>
            <
            a href="javascript:macheFett('B')">Fett</a>

            <
            textarea name="message" rows=12 cols=52>
            </
            textarea>

            </
            form>
            </
            body></html

            Kommentar


            • #7
              Original geschrieben von bejen1
              hi,

              vielleicht solltest du lieber mit iframes statt mit textarea arbeiten:

              http://www.siteexperts.com/tips/contents/ts12/page1.asp

              vorsicht bei iframes!

              http://www.heise.de/newsticker/data/pab-10.09.02-000/

              Kommentar

              Lädt...
              X