JS Fehler bei dateiladen
Morkai
- javascript
Ich möchte eine Page generieren die anhand einer von einem Programm erstellten Textdatei aufgebaut wird.
Mein Problem ist nun das es im Macromedia Homesite funktioniert, im IE aber nichts angezeigt wird, weil das Array leer ist. Erst wenn ich nach dem einlesen des Arrays ein alert plaziere wird danach auch im IE alles angezeigt. Woran kann das liegen? Ich arbeite im allgemeinen nicht mit HTML und JS und bin etwas ratlos wie ich das ohne eine Meldung dazwischen realisieren kann.
<html>
<head>
<title></title>
</head>
<body text="#990000" link="#0000CC" vlink="#000066" alink="#000000">
<SCRIPT type=text/javascript>
document.write('<download id=dwn style="behavior:url(#default#download)">');
PArray = new Array("");
function uebernahme(dat) {
PArray+=dat;
}
function read() {
var source = "";
source = dwn.startDownload("../daten.txt",uebernahme);
return source;
}
read()
var Arraydaten = "";
alert(PArray); // im IE leer
Arraydaten= PArray.split("\n");
... page aufbauen...
Hallo
Ich möchte eine Page generieren die anhand einer von einem Programm erstellten Textdatei aufgebaut wird.
warum willst Du dies unbedingt clientseitig realisieren, dazu noch proprietär für den IE? Ich vermute zwar, dass dies Dir ausreicht, aber ganz sicher gibt es bessere Wege - möglicherweise sogar einfachere, die dazu noch in allen Browsern funktionieren :-)
Mein Problem ist nun das es im Macromedia Homesite funktioniert, im IE aber nichts angezeigt wird, weil das Array leer ist. Erst wenn ich nach dem einlesen des Arrays ein alert plaziere wird danach auch im IE alles angezeigt. Woran kann das liegen?
http://msdn.microsoft.com/workshop/author/behaviors/reference/behaviors/download.asp sagt Dir im Abschnitt "Remarks":
<zitat>
The members listed in the preceding table might not be accessible
through scripting until the window.onload event fires.
</zitat>
Sieht so aus, als würdest Du dies nicht beachten ...
<zitat>
Waiting for this event to fire ensures that the page is completely loaded, that all behaviors have been applied to corresponding elements on the page, and that all the behavior's properties, methods, and events are available for scripting.
</zitat>
Lokal ist die Datei wohl schon da, beim Zugriff über einen Server kann es dauern - oder der vorletzte Absatz trifft insofern zu, dass
<zitat>
[...]
The download behavior and the file specified in the
startDownload method must exist on the same domain.
</zitat>
die angegebene Datei nicht vorhanden ist.
<body text="#990000" link="#0000CC" vlink="#000066" alink="#000000">
<SCRIPT type=text/javascript>
document.write('<download id=dwn style="behavior:url(#default#download)">');
PArray = new Array("");function uebernahme(dat) {
PArray+=dat;
}
function read() {
var source = "";
source = dwn.startDownload("../daten.txt",uebernahme);
return source;
}read()
var Arraydaten = "";
alert(PArray); // im IE leer
Arraydaten= PArray.split("\n");
... page aufbauen...
Und hier ist die Seite noch lange nicht geladen, d.h. lasse besser den Aufbau des Seiteninhalts durch das Ereignis onload des <body>-Elementes auslösen.
Warum verwendest Du keine serverseitige Technik, um die Datei, die ja auf dem Server liegt, komplett aufzubereiten. Das ist meiner Meinung nach viel sinnvoller als auf clientseitige Techniken zu setzen und funktioniert selbstverständlich browserübergreifend (ja, ich weiß, dass das nicht notwendig ist, wenn es eine IE-Monokultur gibt). Stehen Dir keine zur Verfügung und können Dir auch keine zur Verfügung gestellt werden oder fehlen Dir Kenntnisse in den vorhandenen oder nachrüstbaren serverseitigen Techniken?
Freundliche Grüße
Vinzenz