Textarea HTML mit Zeilenumbrüchen?
Hey,
wenn ich eine txt Datei mithilfe einer xmlhttprequest mit javascript auslese und dann den Inhalt in ein textarea lade hat der Inhalt keine Zeilenumbrüche mehr. Weiß jemand wie man das fixt. (Hab gelesen das iwie die Zeilenumbrüche anders in txt als in html sind).
Danke im voraus!
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.
<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.
hmm naja hab das anders gemacht und mit einem contenteditable div und das läuft jetzt einwandfrei. Danke trotzdem!
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>
Nein von anfang an war es eine Textarea. Und ich hab es dann als versuch es zu fixen durch einen div ersetzt.
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
Ja, ob UTF-8, ASCII, ... ist egal, Umbruch ist Umbruch. Es ist immer \n
Bei json z.b.
[
{
"ParentName": "Hauptmenü",
"Childs": [
{
"Name": "Start",
"Site": "start"
},
{
"Name": "What ever",
"Site": "Wasweißich"
}
]
},
Da erscheinen kein Zeilenumbrüche z.b.
Du willst also die gesamte JSON Datei in der Textarea anzeigen?
Warum? Dann Parse doch lieber die Infos in einzelne Inputs, das macht mehr sinn
Ich weiß das das auch anders geht ja aber mein ziel ist das man die json im browser bearbeiten kann. So sieht das aus in der Textarea: https://cdn.discordapp.com/attachments/777571980911444005/901090758218625075/zeilen.PNG
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.
Ansonsten mal ein Replace \t mit nichts, also einfach 2 mal "" machen. Dann sollten alle Tabulatoren raus sein, falls es welche sind
Wie sollte ich also die JSON reinladen sodass man sie im Browser mit Zeilenumbrüchen bearbeiten kann?