Text aus Webseite in text Datei speichern?
Ist es möglich einen Text aus einem Eingabe Feld auf der Webseite mit einem Button neben dem Eingabe Feld automatisch mithilfe von JavaScript in ein Text Dokument (.txt) zu speichern?
2 Antworten
Ja, ist es. Die JavaScript-Anwendung, die den Speichervorgang vornimmt, muss allerdings als Anwendung auf dem Server laufen. Dies wäre demzufolge eine Lösung basierend auf Node.js oder Deno.
Der Download gehört m.E. zum Speichervorgang. Ein BLOB selbst ist noch keine Datei.
Ja das stimmt, das habe ich auch hin bekommen aber das war leider nicht mein Ziel
Anwendung muss auf dem Server laufen, ich verstehe absolut nichts..
Wenn du in deinem Browser eine Webseite aufrufst, geht eine Anfrage an den Webserver, der diese Webseite (HTML-Dokument sowie weitere Ressourcen: Bilder, Skripte, etc.) ausliefert. In diesen Auslieferungsprozess kann man sich mit einer eigenen Anwendung einklinken, um Anfragen individuell verarbeiten zu können.
Solche Serveranwendungen können mit verschiedenen Programmiersprachen geschrieben werden. Sei es PHP, JavaScript, Ruby, o.ä.. Die einzige Voraussetzung ist, dass der Webserver selbst diese Technologie unterstützt / interpretieren kann. Apache Webserver beispielsweise sind meist für die Interpretation von PHP- oder Perlskripten konfiguriert.
Für eine Serveranwendung in JavaScript muss der Webserver eine JavaScript-Engine integriert haben. Das ist bei einer Plattform wie Node.js der Fall.
Ich würde als Grundlage zuerst einmal einen Express-Server nutzen. Das ist im Grunde ein JavaScript-Framework, welches auf einer Node.js-Plattform läuft.
In einer index.js kann man sich folgend Handler implementieren, die Formulardaten empfangen. Das Schreiben der Daten in eine Datei übernimmt das fs-Modul.
const express = require("express");
const bodyParser = require("body-parser");
const fs = require("fs");
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.post("/example", (request, response) => {
const text = request.body["text"];
fs.writeFile("path/to/file", data, "utf8");
response.sendStatus(200);
});
app.listen(8080, () => console.log(`Server started.`));
Das Formular:
<!doctype html>
<head>
<title>Example</title>
<meta charset="utf-8">
</head>
<body>
<form action="/example" method="post">
<label for="text">Text:</label>
<input id="text" name="text">
<button>Send</button>
</form>
</body>
Wenn du mit Node.js arbeiten möchtest, würde ich dazu raten, erst einmal Grundlagentutorials durchzuarbeiten. Beispielsweise auf Node.js.dev. Sichere JavaScript-Kenntnisse werden natürlich vorausgesetzt.
Ja, das ist möglich, der Nutzer muss sich diese .txt Datei dann aber herunterladen.
function downloadContent(name, content) {
var atag = document.createElement("a");
var file = new Blob([content], {type: 'text/plain'});
atag.href = URL.createObjectURL(file);
atag.download = name;
atag.click();
}
downloadContent("test.txt", "hello world");
Gibt es auch eine andere Lösung? Ich will das ich einen Text von der Webseite so einspeichern kann das ich ihn mit einem anderen Button wieder abrufen kann um so zum Beispiel einen Text zu einem anderen Gerät schicken kann, ihn dann bearbeiten kann und ihn anschließend zurück schicken kann oder so
Du kannst doch einfach die Text-Datei über einen Messenger deiner Wahl an das andere Gerät schicken?
Also wenn du von verschiedenen Geräten aus auf einer Website den selben Text bearbeiten können willst, und diese Bearbeitung soll dann jedes Gerät sehen, dann kommst du um einen Server nicht drum rum
Ich will keinen Messenger Nutzen, ich will meine private Webseite nur erweitern..
Was meinst du mit Server? nicht das wir aneinander vorbei reden..
Server nennt sich das Ding, von dem aus die HTML Datei an denjenigen gesendet wird, der die Website aufruft. Wenn man Sachen speichern will, und zwar nicht im Browser der jeweiligen Nutzer sondern an einer zentralen Stelle, dann braucht man einen Server, der sich darum kümmert.
Wie hast du denn deine Website gemacht?
Ist das momentan nur eine HTML-Datei bei dir aufm PC, oder hostest du die Website schon irgendwo, oder hast du einen Baukasten (Wix, Squarespace, Jimdo, ..) verwendet?
Ich hoste meine Webseite momentan so das ich sie von allen Geräten aus sehen kann!
Und wie/wo ? Welche Server-Technologie oder welchen Anbieter verwendest du dafür? Hostest du es auf deinem PC?
freehostingeu.com und zum Testen one.com aber die Domain gehört einem Kumpel und nur zum Testen..
Ersterer Hosting-Service bietet nur Pakete für PHP/Perl und gegen Bezahlung auch Support für C#/Ruby/Python. Infos zur Umsetzung mit PHP hast du schon in deiner vorherigen Frage erhalten. Die anderen Optionen sind kaum einfacher.
Muss sie nicht, geht auch im Browser. Nur die .txt Datei muss man dann halt downloaden