mikexmagic
New member
Hallo zusammen,
kurze Version:
Lange Version:
(vorweg: auf die serverseitigen SOAP- und ASHX-Scripte und Methoden habe ich wenig Einfluss)
in meinem Projekt greife ich auf ein ASHX-Script zu, welches mir eine Datei zum download schickt.
Welche Datei ich benötige, übergebe ich per ID an das Script. Die ID liefert mir vorher eine SOAP-Anfrage...
Vom Ablauf her:
-> User fordert einen Report als PDF an
-> neuer Tab mit Dummy-Page wird geöffnet (verhindert Popup-Blocker-Meldung)
-> SOAP-Anfrage triggert Serverseitige PDF-Erstellung und Antwortet mit einer ID.
-> Dummy-Tab wird mit .location('handler.ashx?id=....') aktualisiert
-> Download der PDF startet
Und jetzt, wenn der Download läuft, soll der Dummy-Tab geschlossen werden.
Setze ich ein .close() ab, wird der Tab aber geschlossen BEVOR der Download startet.
WIE fange ich ab, ob der Download gestartet ist?
Ich hoffe es ist nicht zu kompliziert beschrieben
kurze Version:
Code:
var dl=window.open("");
soapfunction(bla,function(id){
dl.location = 'handler.ashx?id='+id; //ein Download startet
dl.close(); //Aber erst wenn der Download gestartet ist.
}
function soapfunction(parameter,callback) {
//SOAP wird ausgeführt
callback(soapAntwort);
}
Lange Version:
(vorweg: auf die serverseitigen SOAP- und ASHX-Scripte und Methoden habe ich wenig Einfluss)
in meinem Projekt greife ich auf ein ASHX-Script zu, welches mir eine Datei zum download schickt.
Welche Datei ich benötige, übergebe ich per ID an das Script. Die ID liefert mir vorher eine SOAP-Anfrage...
Vom Ablauf her:
-> User fordert einen Report als PDF an
-> neuer Tab mit Dummy-Page wird geöffnet (verhindert Popup-Blocker-Meldung)
-> SOAP-Anfrage triggert Serverseitige PDF-Erstellung und Antwortet mit einer ID.
-> Dummy-Tab wird mit .location('handler.ashx?id=....') aktualisiert
-> Download der PDF startet
Und jetzt, wenn der Download läuft, soll der Dummy-Tab geschlossen werden.
Setze ich ein .close() ab, wird der Tab aber geschlossen BEVOR der Download startet.
WIE fange ich ab, ob der Download gestartet ist?
Ich hoffe es ist nicht zu kompliziert beschrieben