Probleme mit 'document.write'
Johannes
- javascript
Ich habe ein Problem mit document.write!
Immer, wenn ich einen Text in eine HTML-Datei schreiben will, muss ich das so:
document.write("Test!<br>\nDies ist ein Test!");
Viel praktischer wäre es (ich muss nämlich ziemlich(!) viel in die HTML-Datei hineinschreiben) so:
document.write("
Test!
Dies ist ein Test!
");
Doch ich bekomme natürlich einen Fehler.
Kennt jemand eine andere Möglichkeit?
Geht nicht !
Geht nicht !
Aha!
Geht nicht ganz deiner meinung Nobia Gelda !
#!/usr/bin/perl
# Dieses Beispiel liest eine kommabegrenzte Datei mit Adressen ein
# und schreibt sie HTML-formatiert in eine neue Datei
@Adressen = (""); # Speicher für alle Datensaetze
@Datensatz = (""); # Speicher für alle Felder des aktuellen Datensatzes
$Felder = ""; # Speicher für die Namen der Felder (stehen in der ersten Dateizeile
$i = 0;
open(ADRESSEN, "<adressen.csv") die "Adressendatei nicht gefunden\n";
while(<ADRESSEN>) # Kommabegrenzte Datei einlesen
{
if($i == 0) # erste Zeile der Datei einlesen
{
$Felder = $_; # Feldnamen ermitteln
}
else
{
$Adressen[$i] = $_; # ab zweiter Zeile in @Adressen einlesen
}
$i++; # Datensatzzähler erhöhen
}
close(ADRESSEN);
$Anzahl = $i - 1; # Anzahl Datensätze merken
chop($Felder);
@Datenfelder = split(/,/,$Felder); # Erste Zeile mit Feldnamen aufdröseln
open(ADRESSENDAT, ">adressen.htm"); # HTML-Datei zum Schreiben öffnen
print ADRESSENDAT "<html>\n<head>\n"; # HTML-Datei schreiben
print ADRESSENDAT "<title>Adressen</title>\n";
print ADRESSENDAT "</head>\n<body bgcolor=#FFFFFF>\n";
for(@Adressen) # solange Daten in der Adressenliste sind
{
@Datensatz = split(/,/,$_); # Aktuellen Datensatz aufdröseln
$i = 0;
for(@Datensatz)
{
print ADRESSENDAT "<b>$Datenfelder[$i]:</b> $Datensatz[$i]<br>\n"; # Aktuellen Datensatz schreiben
$i++;
}
}
print ADRESSENDAT "</body>\n</html>\n";
close(ADRESSENDAT);
print $Anzahl," Datensaetze geschrieben\n"; # Nur zur Kontrolle: auf Standardausgabe
#!/usr/bin/perl
# Dieses Beispiel liest eine kommabegrenzte Datei mit Adressen ein
# und schreibt sie HTML-formatiert in eine neue Datei
Ich wollte das ganze eigentlich für JavaScript und nicht für Perl wissen!
Ach so ! Sag das doch gleich !
Ach so ! Sag das doch gleich !
Was soll ich gleich sagen? Du sprichst in Rätseln.
Es kann doch sein, das es eine Lösung gibt,
in Perl giebt es ja auch eine (sfausles).
Hallo Johannes,
document.write("
Test!
Dies ist ein Test!
");
Du kannst es ja mal so versuchen:
t = new Array(
'Zeile1',
'Zeile2',
'Zeile3',
'Zeile4',
'Zeile5',
'Zeile6',
'Zeile7');
for (a=0;a<t.length;a++)
{ document.write(t[a]+"<BR>\n");}
Ist vielleicht nicht optimal, aber man hat eine gewisse Übersichtlichkeit dadurch.
t = new Array(
'Zeile1',
'Zeile2',
'Zeile3',
'Zeile4',
'Zeile5',
'Zeile6',
'Zeile7');for (a=0;a<t.length;a++)
{ document.write(t[a]+"<BR>\n");}
Hi Johannes (sehr schöner Name ;-) )
Ja, das würde auch gehen, aber ich glaube ich mach es so wie Carsten es vorgeschlagen hat.
Trotzdem vielen Dank!
cu,
Johannes
Hi Johannes, (<---Plural)
t = new Array(
'Zeile1',
'Zeile2',
'Zeile3',
'Zeile4',
'Zeile5',
'Zeile6',
'Zeile7');for (a=0;a<t.length;a++)
{ document.write(t[a]+"<BR>\n");}
das geht so, document.write() ist aber sehr langsam bei vielen Aufrufen.
schneller gehts wenn du die Ausgabe erst in einem String sammelst:
var out="";
for (a=0;a<t.length;a++)
{
out +=t[a] +"<br>\n";
}
document.write(out);
Gruss,
Carsten
Hi Johannes,
klar geht das.
mach einfach einen Backslash ans Ende jeder Zeile, _unmittelbar_ vor dem Zeilenvorschub.
Also
document.write("\ Test!\ Dies ist ein Test!\ ");
Gruss,
Carsten
Hi Johannes,
document.write("\ Test!\ Dies ist ein Test!\ ");
Hi Carsten,
ja, das ist garnicht schlecht, so werd ichs machen!
Denn sonst ist es echt hoffnungslos!
cu,
Johannes
Hallo
Schreib einfach alles in ein textfile rein.
Dann ersetze \n (zeilenumbruch) \\n (\ und zeilen umbruch.
Dann kommt sowas raus:
var a = "text\ text\ text\ text";
Tschüs
Daniel
Hi Daniel,
Schreib einfach alles in ein textfile rein.
Geht das denn mit JavaScript? Das hab ich mir nämlich schon überlegt!
cu,
Johannes Weißl
Hi Johannes
Ich habe eigendlich gemeint, das du das mit einem Texteditor machst, damit du deine
HTML-Datei schnell in den JS-Code einbetten kannst.
Du kannst natürlich auch eine Datei mit dem Code einlesen, dann brauchst du das alles nicht.
Wie das geht? < http://www.teamone.de/selfaktuell/artikel/jsfileop/artikel.htm>
Tschüs
Daniel