Textarea HTML mit Zeilenumbrüchen?

2 Antworten

Also bei mir funktioniert das so auch:

<textarea id="area"></textarea>
<script>
    document.getElementById("area").innerHTML = "Hello\nWorld"; // .value oder .innerText geht auch
</script>

Wenn dein JSON keine Zeilenumbrüche enthält, wird dieses auch nicht so gerendert. Bei API-Anfragen ergibt es keinen Sinn, Zeilenumbrüche zu verwenden.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

Franz120378 
Fragesteller
 22.10.2021, 14:57

Wie sollte ich also die JSON reinladen sodass man sie im Browser mit Zeilenumbrüchen bearbeiten kann?

0
Lezurex  22.10.2021, 15:06
@Franz120378
<body>
    <textarea id="area"></textarea>
    <script>
        const req = new XMLHttpRequest();
        req.open("GET", "https://api.github.com/users/jasfhkhsfkj");
        req.addEventListener("load", () => {
            document.getElementById("area").innerHTML = req.responseText;
        });
        req.send();
    </script>
</body>

Das funktioniert bei mir einwandfrei.

1
Franz120378 
Fragesteller
 22.10.2021, 15:09
@Lezurex

hmm naja hab das anders gemacht und mit einem contenteditable div und das läuft jetzt einwandfrei. Danke trotzdem!

0
Lezurex  22.10.2021, 15:12
@Franz120378

Na du bist ja ein lustiger. Dann sag doch gleich, dass das ein div mit contentEditable ist. Dann sieht das natürlich anders aus. Dort wird natürlich HTML dargestellt und nicht einfach nur Text.

Dann musst du alle \n durch <br/> ersetzen.

<body>
    <div id="area"></div>
    <script>
        document.getElementById("area").contentEditable = true;
        const req = new XMLHttpRequest();
        req.open("GET", "https://api.github.com/users/jasfhkhsfkj");
        req.addEventListener("load", () => {
            document.getElementById("area").innerHTML = req.responseText.replaceAll("\n", "<br/>"); // .value oder .innerText geht auch
        });
        req.send();
    </script>
</body>
1
Franz120378 
Fragesteller
 22.10.2021, 15:14
@Lezurex

Nein von anfang an war es eine Textarea. Und ich hab es dann als versuch es zu fixen durch einen div ersetzt.

0

Dann ist wohl deine txt kaputt, wo du das draus abfragst, weil es funktioniert mit Zeilenumbrüchen:

<textarea></textarea>


<script>
	document.getElementsByTagName("textarea")[0].value = "hallo\ntest";
</script>

In HTML nutzt man zwar <p></p> oder <br> für Umbrüche, aber nicht in der textarea, dort nutzt man wie zuvor \n


Franz120378 
Fragesteller
 22.10.2021, 14:45

Gilt das für alle UTF-8 kodierten Formate?

0
FaTech  22.10.2021, 14:45
@Franz120378

Ja, ob UTF-8, ASCII, ... ist egal, Umbruch ist Umbruch. Es ist immer \n

1
Franz120378 
Fragesteller
 22.10.2021, 14:47
@FaTech

Bei json z.b.

[
    {
        "ParentName": "Hauptmenü",
        "Childs": [
            {
                "Name": "Start",
                "Site": "start"
            },
            {
                "Name": "What ever",
                "Site": "Wasweißich"
            }
        ]
    },

Da erscheinen kein Zeilenumbrüche z.b.
0
FaTech  22.10.2021, 14:50
@Franz120378

Du willst also die gesamte JSON Datei in der Textarea anzeigen?

0
FaTech  22.10.2021, 14:51
@Franz120378

Warum? Dann Parse doch lieber die Infos in einzelne Inputs, das macht mehr sinn

0
FaTech  22.10.2021, 14:57
@Franz120378

Naja, trotzdem sollte es korrekt angezeigt werden, außer sie wird schon ohne die Absätze geladen. Da es JSON ist, kannst du aber auch manuell welche nachbearbeiten. Replace einfach alles, wo Absätze hinsollen, Beispiel:

[ Replace mit [\n

] Replace mit ]\n

", Replace mit ",\n

usw.

1
FaTech  22.10.2021, 15:01
@Franz120378

Ansonsten mal ein Replace \t mit nichts, also einfach 2 mal "" machen. Dann sollten alle Tabulatoren raus sein, falls es welche sind

1