3.5k Aufrufe
Gefragt in Webseiten HTML von
Guten Tag. Ich möchte eine Textdatei in einem Iframe einer HTML-Datei mithilfe Javascript mit einer bestimmten Formatierung ausgeben. Ähnlich wie es hier https://supportnet.de/fresh/2007/4/id1532781.asp schon einmal beschrieben ist. Sprich bei Aufrufen der HTML-Seite soll automatisch die Textdatei eingelesen und ausgegeben werden. Nun möchte ich aber das in der Textdatei zum Beispiel steht <Zeilenumbruch> und das das automatisch als <br> interpretiert wird und somit der Zeielnumbruch erfolgt. Es soll jemand ganz ohne HTML-Kenntnisse leicht den Text ändern können. Ich wäre für Hilfe wirklich dankbar.

7 Antworten

0 Punkte
Beantwortet von johann1976 Einsteiger_in (13 Punkte)
Hallo.
So funktioniert es im Mozilla Firefox.


<html>
<head>
<title>AJAX</title>
<script type="text/javascript">
function nachladen() {
var http = null;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (http != null) {
http.open("GET", "textdatei.txt", true);
http.onreadystatechange = ausgeben;
http.send(null);
}

function ausgeben() {
if (http.readyState == 4) {

var dateiinhalt=http.responseText;
dateiinhalt = dateiinhalt.replace(/<absatz_text>/g, '<b><font size="+2">');
dateiinhalt = dateiinhalt.replace(/<absatz_endet>/g, '</font></b>');

dateiinhalt = dateiinhalt.replace(/ae/g, '&auml;');
dateiinhalt = dateiinhalt.replace(/Ae/g, '&Auml;');
dateiinhalt = dateiinhalt.replace(/oe/g, '&ouml;');
dateiinhalt = dateiinhalt.replace(/Oe/g, '&Ouml;');
dateiinhalt = dateiinhalt.replace(/ue/g, '&uuml;');
dateiinhalt = dateiinhalt.replace(/Ue/g, '&Uuml;');
dateiinhalt = dateiinhalt.replace(/ss/g, '&szlig;');

document.getElementById("Ausgabe").innerHTML = dateiinhalt;

}
}
}
window.onload=nachladen;
//--></script>
</head>
<body bgcolor=red>
HTML vom Server:
<div id="Ausgabe"></div>
</body>
</html>

Leider nicht im Internet Explorer. Weiß jemand Rat? Ich krieg schon kahle Stellen vom Haare raufen, bitte helft mir.
0 Punkte
Beantwortet von
http ist lokale Variable in nachladen, in ausgeben daher unbekannt!
0 Punkte
Beantwortet von
dein Code umgeschrieben auf anonyme Funktionen und Closures (umgehen das lokale-Variable-Problem):

<html>
<head>
<title>AJAX</title>
<script type="text/javascript">
window.onload=function () {
var http = null;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (http != null) {
http.open("GET", "textdatei.txt", true);
http.onreadystatechange = function(){
if (http.readyState == 4) {
var dateiinhalt=http.responseText;
... (viel unnötiger Code, zB. Umlautmaskierung!)
document.getElementById("Ausgabe").innerHTML=dateiinhalt;
}
http.send(null);
}
}
}
</script>
</head>
<body style="background-color:red">
HTML vom Server:
<div id="Ausgabe"> </div>
</body>
</html>


Außerdem die Kommentar-Ende-Deklaration im Script gelöscht - völlig überflüssig und zudem unvollständig.

Tipp: Firefox hat eine Fehlerkonsole (Menü Extras)
0 Punkte
Beantwortet von johann1976 Einsteiger_in (13 Punkte)
Erstmal vielen Dank für die zwei schnellen Antworten ! Leider krieg ich das nicht zum laufen.

<html>
<head>
<title>AJAX</title>
<script type="text/javascript">
window.onload=function () {
var http = null;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (http != null) {
http.open("GET", "textdatei.txt", true);
http.onreadystatechange = function(){
if (http.readyState == 4) {
var dateiinhalt=http.responseText;

document.getElementById("Ausgabe").innerHTML=dateiinhalt;
}
http.send(null);
}
}
}
</script>
</head>
<body bgcolor=red>
HTML vom Server:
<div id="Ausgabe"> </div>
</body>
</html>

Fehlt da noch was?

Die Umlautmaskierung brauch ich net wirklich. Stimmt.
Aber ich möchte in der Textdatei zum Beispiel schreiben <zeilenumbruch> und die Funktion soll automatisch das als <br> ausgeben, sprich an der Stelle einen Zeilenumbruch einfügen. Genauso mit der Formatierung, Schriftart und so.
Danke für die Mühe.
0 Punkte
Beantwortet von
Fehlermeldungen?
0 Punkte
Beantwortet von johann1976 Einsteiger_in (13 Punkte)
Der IE8 bringt

Details zum Fehler auf der Webseite

Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; FDM; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Zeitstempel: Tue, 26 Jan 2010 08:03:26 UTC


Meldung: Zugriff verweigert

Zeile: 13
Zeichen: 3
Code: 0
URI: file:///Y:/Eigene%20Dateien/Aktuelle%20Projekte/ZIS%201472009/ZIS_neue_Webseite/GoLive/test.html

im Mozilla steht nichts verwertbares. Nur eine Fehlermeldung über Google. Zeigt aber gar nichts an.
Was bedeutet lokale Variable?
0 Punkte
Beantwortet von
im Mozilla steht nichts verwertbares
überlass die Beurteilung besser anderen. Und betätige den Button "Löschen" vor dem Reload deiner Seite.

Die Fehlermeldungen des Internet-Explorer sind grundsätzlich nicht verwertbar!
...