Horsti: Zeilenumbrüche in textarea

Hallo!
Ich möchte per Javascript in einer Textarea mit relativ viel Text Zeilenumbrüche hinter einem einfachen Hochkomma einfügen bzw. wieder entfernen (also togglen).
Naiverweise dachte ich, dass folgendes ausreicht.
Hinweg:
$('#Textfeld').text()replace(/'/g, "'\n");

Rückweg:
$('#Textfeld').text()replace(/'\n/g, "'");

Das funktioniert im FF3 auch gut, nur im IE6 leider nicht. Dort verlangt er nach "<br>". Wie das Verhalten im IE7 und IE8 ist, konnte ich mangels Installation noch nicht testen.
Jegliches Einfügen von "\r", "\r\n" oder eines Carriage Returns per "&#13;" haben mich noch nicht weitergebracht.

Leider muss der Code noch im IE6 laufen, daher wär ich neugierig, ob es eine Version ohne Browserweiche gibt.

Vielen Dank!

Horsti

P.S.: Bitte kein Geflame "Sag deinem Kunden, dass du den IE6 nicht unterstützt." usw.! Den Kampf habe ich schon ausgefochten (und verloren).

  1. @@Horsti:

    nuqneH

    Leider muss der Code noch im IE6 laufen, daher wär ich neugierig, ob es eine Version ohne Browserweiche gibt.

    Was spricht gegen eine solche? Natürlich eine richtige: conditional compilation.

    Qapla'

    --
    Volumen einer Pizza mit Radius z und Dicke a: pi z z a
  2. Ich möchte per Javascript in einer Textarea mit relativ viel Text Zeilenumbrüche hinter einem einfachen Hochkomma einfügen bzw. wieder entfernen (also togglen).
    Naiverweise dachte ich, dass folgendes ausreicht.
    Hinweg:
    $('#Textfeld').text()replace(/'/g, "'\n");

    Rückweg:
    $('#Textfeld').text()replace(/'\n/g, "'");

    Das funktioniert im FF3 auch gut, nur im IE6 leider nicht. Dort verlangt er nach "<br>".

    Das stimmt nicht!
    In einer Textarea wird kein HTML interpretiert und ein "\n" ist ein Umbruch. Wenn das bei dir anders ist, dann ist es keine textarea.

    Struppi.

    1. Hallo!

      Erst mal danke für die Antworten.

      Das stimmt nicht!
      In einer Textarea wird kein HTML interpretiert und ein "\n" ist ein Umbruch. Wenn das bei dir anders ist, dann ist es keine textarea.

      Das stimmt schon, mein Fehler lag aber woanders.

      Mein Zugriff auf den Inhalt der textarea (sowohl lesend als auch schreibend) habe ich mit der jQuery-Funktion text() gemacht.
      Ohne jetzt genau zu wissen, wie die Funktion arbeitet, ist der korrekte Zugriff allerdings per "native" Javascript mit .value notwendig.
      Wenn man also korrekt

      $('#Batch').value.replace(/'\r?\n/g, "'");

      verwendet, dann klappt es auch im IE6.
      (Das einzige, worauf man beim IE achten muss, dass er auf dem Hinweg noch ein "\r" einfügt, was man beim Zurückverwandeln entsprechend in der RegExp hinzufügen muss.)

      1. Das stimmt nicht!
        In einer Textarea wird kein HTML interpretiert und ein "\n" ist ein Umbruch. Wenn das bei dir anders ist, dann ist es keine textarea.

        Das stimmt schon, mein Fehler lag aber woanders.

        Eben, wieso behautest du also das es stimmt? HTML wird in einer Textarea nicht interpretiert.

        Ohne jetzt genau zu wissen, wie die Funktion arbeitet, ist der korrekte Zugriff allerdings per "native" Javascript mit .value notwendig.

        Ich hab nur wenig Ahnung von jquery, aber es gibt auch ein Funktion .val()

        Struppi.

        1. Eben, wieso behautest du also das es stimmt? HTML wird in einer Textarea nicht interpretiert.

          Dein "Das stimmt nicht." bezieht sich eben leider nicht auf alles.
          Mit zu erst genanntem Code werden <br> im IE6 in der textarea interpretiert.
          Du hast also nicht pauschal recht.

          Ich hab nur wenig Ahnung von jquery, aber es gibt auch ein Funktion .val()

          Stimmt, das habe ich im letzten Psoting sogar noch falsch geschrieben.
          Ich wollte eben diese Korrektur noch anfügen, denn richtig muss es lauten:

          content = $('#Batch').val().replace(/'\s/g, "'");  
          $('#Batch').val(content);
          

          Danke für die Mühen!

          Horsti

          1. Mit zu erst genanntem Code werden <br> im IE6 in der textarea interpretiert.
            Du hast also nicht pauschal recht.

            Nie und nimmer!
            Ich hab gerade keinen IE 6 zur Hand, aber ich habe noch keinen Browser erlebt wo das so war.

            Struppi.

            1. Nie und nimmer!
              Ich hab gerade keinen IE 6 zur Hand, aber ich habe noch keinen Browser erlebt wo das so war.

              Du musst es ja wissen, wenn du es nicht mal ausprobieren kannst.

              Ich hab nur wenig Ahnung von jquery

              Vielleicht hängt es auch damit zusammen, aber glauben ist halt einfacher als überprüfen und wissen.

              1. Nie und nimmer!
                Ich hab gerade keinen IE 6 zur Hand, aber ich habe noch keinen Browser erlebt wo das so war.

                Du musst es ja wissen, wenn du es nicht mal ausprobieren kannst.

                Ich hab es ausprobiert, hunderte Male, kein Browser dieser Welt interpretiert ein <br> in einer Textarea als Zeilenumbruch.

                Ich hab nur wenig Ahnung von jquery

                Vielleicht hängt es auch damit zusammen, aber glauben ist halt einfacher als überprüfen und wissen.

                Da ich wie schon erwähnt keinen IE 6 hier habe, habe ich es mit dem IE 8 überprüft und da stimmt die Aussage auch nicht.

                Struppi.

                1. Ich hab es ausprobiert, hunderte Male, kein Browser dieser Welt interpretiert ein <br> in einer Textarea als Zeilenumbruch.

                  Da ich wie schon erwähnt keinen IE 6 hier habe, habe ich es mit dem IE 8 überprüft und da stimmt die Aussage auch nicht.

                  Fällt dir eine kleine Logikschwäche beim Lesen deiner beiden Aussagen auf?

                  Egal, ich werde kein Video von besagtem Verhalten machen und habe auch keine Ambitionen, dich zu überzeugen.
                  Wenn dein Horizont halt so unermesslich ist, dass du schon alles gesehen zu haben meinst, dann kannst du das hier auch gerne weiter im Forum verbreiten.

                  1. Ich hab es ausprobiert, hunderte Male, kein Browser dieser Welt interpretiert ein <br> in einer Textarea als Zeilenumbruch.

                    Da ich wie schon erwähnt keinen IE 6 hier habe, habe ich es mit dem IE 8 überprüft und da stimmt die Aussage auch nicht.

                    Mittlerweile habe ich es auch im IE 6 überprüft und meine Aussage stimmt.

                    Fällt dir eine kleine Logikschwäche beim Lesen deiner beiden Aussagen auf?

                    Nein, das erste war die Erkenntnis der Erfahrung, die zweite nur dem geschuldet, dass du deine Aussage auf den IE 6 beschränkt hast, den ich bis dahin  nicht testen konnte.

                    Egal, ich werde kein Video von besagtem Verhalten machen und habe auch keine Ambitionen, dich zu überzeugen.

                    Es würde Quellcode reichen, aber ich zeig dir meinen:

                    <textarea id="t">'''''</textarea>  
                    </script>  
                    <script type="text/javascript">  
                    var t = $('#t').text();  
                    t = t.replace(/'/g, "'<br>");  
                    $('#t').text(t);  
                    </script>  
                    
                    

                    Und jetzt zeig mir einen Browser, der das <BR> als Zeilenumbruch zeigt.

                    Wenn dein Horizont halt so unermesslich ist, dass du schon alles gesehen zu haben meinst, dann kannst du das hier auch gerne weiter im Forum verbreiten.

                    Keine Ahnung was du von mir willst? Deine Aussage ist, so wie du sie getroffen hast falsch!
                    Ich habe dir trotzdem bei der Lösung helfen können und jetzt versuchst du mich zu beleidigen? Kann es sein dass igrendwas mir dir nicht in Ordnung ist?

                    Struppi.

              2. Ich hab nur wenig Ahnung von jquery

                Vielleicht hängt es auch damit zusammen, ...

                Ich hab mir die Funktion text() angeschaut, sie erzeugt einen Textknoten und auch dort wird ein <br> nicht interpretiert.

                Struppi.

          2. Mit zu erst genanntem Code werden <br> im IE6 in der textarea interpretiert.
            Du hast also nicht pauschal recht.

            Doch, hat er! Da braucht es auch einen konkreten Test. Der von dir beobachtete Effekt wird seine Ursache im Kontext deiner "Applikation" haben. Zwecks Beweisführung wäre ein Link zu einer Seite mit fraglichem Verhalten hervorragend.