Michael Brogmus: Wrap in TEXTAREA

Hallo, habe ein Problem (wieder) das ich vor einem Jahr mal gelöst hatte. Nur funktioniert die Lösung jetzt nicht mehr :-((

Ich habe eine TEXTAREA von vorgegebener Breite und benutze wrap="physical" (bzw. wrap="hard, habe beides probiert) um automatische Zeilenumbrüche für Javascript zu erzeugen.

Ich habe bereits in verschiedenen Foren gesucht und immer gefunden "Das macht keinen Sinn, lasse HTML entscheiden", aber hier gibt es eine Notwendigkeit das es eben doch genauso sein muss. Sorry, aber es geht wirklich nicht anders.

Das wrap hatte letztes Jahr dazu geführt das die Zeilenumbrüche die in der Darstellung automatisch eingefügt wurden auch als \n an Javascript übergeben wurden. Dies funktioniert jetzt nicht mehr.

Weiss jemand ob sich hier vielleicht im IE etwas geändert hat ?? Ist leider kein PC auf dem ich Admin Rechte habe, kann also durchaus "unter der Hand" etwas neues eingespielt worden sein.

Gruss und Dank im voraus
Michael

  1. Hallo,

    Ich habe bereits in verschiedenen Foren gesucht und immer gefunden "Das macht keinen Sinn, lasse HTML entscheiden", aber hier gibt es eine Notwendigkeit das es eben doch genauso sein muss. Sorry, aber es geht wirklich nicht anders.

    Warum fügst du die „\n“s nicht einfach per JavaScript ein, wenn du die Anzahl der Zeichen pro Zeile kennst?

    Auf irgendwelche browserspezifischen Ausgaben würde ich mich da nicht verlassen. Zumal das „wrap“-Attribut ja noch nicht mal standardisiert ist…

    mfg. Daniel

    1. Vielen Dank,

      Hallo,

      Ich habe bereits in verschiedenen Foren gesucht und immer gefunden "Das macht keinen Sinn, lasse HTML entscheiden", aber hier gibt es eine Notwendigkeit das es eben doch genauso sein muss. Sorry, aber es geht wirklich nicht anders.

      Warum fügst du die „\n“s nicht einfach per JavaScript ein, wenn du die Anzahl der Zeichen pro Zeile kennst?

      Das ist ja genau das Problem.... ich kenne die Anzahl Zeichen ja nicht. Klar, man könnte nach "x" Zeichen ein \n einfügen, aber dann müsste man den kompletten Umbruch selber programmieren. Und im Prinzip wird es ja schon richtig angezeigt....

      Auf irgendwelche browserspezifischen Ausgaben würde ich mich da nicht verlassen. Zumal das „wrap“-Attribut ja noch nicht mal standardisiert ist…

      Die Anwendung braucht nur auf IE zu laufen. Andere Browser brauchen nicht berücksichtigt zu werden. Bis Anfang diesen Jahres lief es auch ohne Probleme (seit fast zwei Jahren).
      Laut Microsoft sollte das "wrap" auch so interpretiert werden wie ich es brauche...

      mfg. Daniel

      Danke nochmals
      Michael

      1. Warum fügst du die „\n“s nicht einfach per JavaScript ein, wenn du die Anzahl der Zeichen pro Zeile kennst?

        Das ist ja genau das Problem.... ich kenne die Anzahl Zeichen ja nicht.

        Das steht üblicherweise im cols-Attribut der Textarea, wie viele Zeichen diese breit ist.

      2. Hallo,

        Warum fügst du die „\n“s nicht einfach per JavaScript ein, wenn du die Anzahl der Zeichen pro Zeile kennst?

        Das ist ja genau das Problem.... ich kenne die Anzahl Zeichen ja nicht.

        Doch, die horizontale müsstest du kennen. Das entspricht ja der Angabe in „cols“-Attribut. Nur wenn du eine Schriftart mit Variabler Breite nhimmt, wird's schwierig…

        Klar, man könnte nach "x" Zeichen ein \n einfügen, aber dann müsste man den kompletten Umbruch selber programmieren. Und im Prinzip wird es ja schon richtig angezeigt....

        Tja, aber es scheint ja nicht zu gehen…
        Eine direkte Alternative zu „wrap“ gibt es AFAIK nicht. Warum willst du überhaupt Umbrüche?

        Auf irgendwelche browserspezifischen Ausgaben würde ich mich da nicht verlassen. Zumal das „wrap“-Attribut ja noch nicht mal standardisiert ist…

        Die Anwendung braucht nur auf IE zu laufen. Andere Browser brauchen nicht berücksichtigt zu werden.

        OK, das mag bei einer Intranet-Anwendung für eine Firma noch einigermaßen i.O. sein. Trotzdem würde ich schon mal an die Alternativbrowser denken. Vielleicht kommt dein Chef ja auch die geniale Idee, auch in seiner Firma auf gescheite Browser umzustellen oder gar auf Linux, und dann?

        http://de.wikipedia.org/wiki/Limux

        Bis Anfang diesen Jahres lief es auch ohne Probleme (seit fast zwei Jahren).

        Tja, auch das ist ein Grund, sich lieber an die Standards zu halten…

        mfg. Daniel

      3. Hallo,

        Die Anwendung braucht nur auf IE zu laufen. Andere Browser brauchen nicht berücksichtigt zu werden. Bis Anfang diesen Jahres lief es auch ohne Probleme (seit fast zwei Jahren).

        Wieso sollte man andere Browser nicht berücksichtigen, das ist doch unsinn.

        Laut Microsoft sollte das "wrap" auch so interpretiert werden wie ich es brauche...

        MS ist Rückwärtskompatibilität sehr wichtig, deshalb geht die Entwicklung de IE auch so träge vorwärts.
        Tatsächlich hat der neue aber Rückwärtskompatibilität eingebüßt, da macht es nur Sinn, dabei bei kleinere Dingen anzufangen, die vermutlich fast nie jemand benötigt.

        Wie jemand sagte, wenn du eine nicht-proportionale Schriftart verwendest, und das Pflichtattribut cols angibst, ist dir bekannt, wie viele Zeichen in einer Zeile stehen.

        Nutze den Standard, er setzt sich durch ;-)

        Gruß;

      4. Hi,

        Die Anwendung braucht nur auf IE zu laufen. Andere Browser brauchen nicht berücksichtigt zu werden.

        Vielleicht hilft dir diese quick'n'dirty-Funktion weiter:

        <form name="editor" action="" method="post">
        <div id="editArea"><textarea id="editTag" name="data" cols="60" rows="24" wrap="off"></textarea></div>

        </form>

        // Zeilenumbruch umschalten
        function toggleTextWrap() {
         fileContent=document.forms["editor"].elements["data"].value;
         wrapMode=(document.forms["editor"].elements["WordWrap"].checked)?"virtual":"off";
         displayRows=(document.forms["editor"].elements["WordWrap"].checked)?document.forms["editor"].elements["data"].rows+(Math.abs(is_ie)):document.editor.data.rows-(Math.abs(is_ie));
         document.getElementById("editArea").innerHTML='<textarea id="editTag" name="data" cols="60" rows="'+displayRows+'" wrap="'+wrapMode+'"></textarea>';
         document.forms["editor"].elements["data"].value=fileContent;
         document.forms["editor"].elements["data"].focus();
        }

        Eine Checkbox namens "WordWrap" dient als Umschalter, und is_ie ist, je nach Browser, true oder false. Die Höhe der TA wird (via rows) ebenfalls angepaßt.

        Außerdem dürfte für dich dieses Posting mit einem IMHO etwas umständlicheren Weg interessant sein: WRAP ein-/ausschalten

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!