javascript mit document.write() funktioniert NICHT

W

w!lko

Guest
ich habe folendes problem: mein javascript funktioniert ohne probleme im internetexplorer, jedoch nicht im mozilla!
der sinn des quelltextes: ich möchte beliebig viele strings anlegen und in einem array namens Entry[] speichern, diese Entry[]-strings sollen dann auf ihren inhalt geprüft werden und dann gegebnefalls in form einer tabelle ausgegeben werden. man kann durch die buttons aussuchen ob man alle einträge die "ALPHA" enthalten oder die die "BETA" enthalten anzeigen möchte.
konkretes Problem: es sieht so aus das die document.write() funktion in den schleifen im mozilla nicht interpretiert wird. es wird nur der tabellenkopf mit den überschriften angezeigt (erste document.write() ), danch verfällt der browser in dauerhaftes laden und führt das script nicht zu ende aus.
wie kann ich dieses problem lösen, so das die gesamte tabelle auch im mozilla angezeigt wird?
der quelltext ist ein wenig zu gross (hab ihn aber auf das wesentliche reduziert!), deshalb online unter:
http://www.fh-friedberg.de/users/hinein/seek.html
 
Ich hab zwar keinen Mozilla, und mein IE führt das Script problemlos aus, so wie Du schreibst. Der Code selbst sieht auch aufgeräumt aus, nur: die Zeile mit document.write() am Anfang in der Funktion Seek hat keinen Strichpunkt am Ende. Könnte das den Mozilla vielleicht verwirren?

Griessli
Irene
 
am strichpunkt liegt's leider nich, hab ihn eben eingefügt ...
 
Mozilla hat eine Javascript-Konsole (unter Tools). Manchmal sehr hilfreich
wink.gif


Sie meldet:

Fehler: Entry is not defined
Quelldatei: http://www.fh-friedberg.de/users/hinein/seek.html
Zeile: 21

Habe den Fehler nicht gesehen, aber vielleicht hilfts dir weiter.

Franz
 
ich habs jetzt mal so probiert:
http://www.fh-friedberg.de/users/hinein/seek2.html
(erst alles in einem string speichern und dann nur den einen string ausgeben)

es geht jetzt auch im mozilla, allerdings verfällt mozilla immernoch in diesen dauerhaften ladezustand. ???

ausserdem stellt sich mir die frage wieviel zeichen kann den so ein string aufnehmen, ist er irgendwann voll?
 
hallo w!lko

> dauerhaften ladezustand

das liegt daran dass du das dokument öffnest, rein schreibst es dann aber nicht wieder schliesst.

korrekt wäre:
var content = 'Jo ich bin dann der inhalt - nämlich.';
document.open('text/html');
document.write(content);
document.close();

wenn du das document.close(); weglässt meint mozilla (zurecht) dass das dokument noch nicht fertig ist.

bezüglich des Entry Arrays könntest du das auch so machen:
var Entry = new Array();
Entry[Entry.length] = 'gugus';
Entry[Entry.length] = 'gaga';
Entry[Entry.length] = 'velo';
so brauchst du keinen counter.

es ist eine gute idee erst den string zusammenzusetzen und ihn dann als ganzes auszugeben.
jeder aufruf von document.write() ist 'resourcen-hungrig'. das spielt hier zwar kaum eine rolle, aber wenn du zb einen Array mit 10000 Elementen hast dann merkst du schnell einen unterschied.

hth
gruss
kaidon
 
Zurück
Oben