2010-01-18 4 views
5

Wenn der Benutzer auf einen Hyperlink klickt, öffne ich ein Popup-Fenster, das eine Datei herunterlädt. Nach dem Download zeigt es das Öffnen/Speichern-Dialogfeld. Ich möchte das Popup-Fenster schließen, sobald der Download abgeschlossen ist (wenn der Benutzer zum Speichern der Datei aufgefordert wird). Ich habe versucht window.close-Methode, aber es funktioniert nicht, da der Kontext nicht das Popup-Fenster, sondern das Öffnen/Speichern-Dialogfeld ist.Schließen Sie die Browser-Popup-Seite nach dem Herunterladen der Datei

Antwort

5

Ich denke, Sie können es nicht programmgesteuert steuern. Dies ist Browser-spezifische Sache, wo einige Browser Ihnen erlauben, ein Kontrollkästchen zu aktivieren, um das Fenster zu schließen und so weiter.

+0

Ja. Einige Benutzer möchten dieses Fenster gerne haben, z. damit sie nach dem Herunterladen 'Run' ausführen können; dass, wie sie es bevorzugen und du solltest nicht versuchen, das zu stören (nicht dass du kannst). Alle anderen, die dieses Verhalten nicht mögen, werden die Box deaktivieren, um es zu entfernen. – bobince

1

Browser haben die Angewohnheit, selbst zu entscheiden, ob sie versuchen, eine Datei herunterzuladen oder sie innerhalb des Browserfensters zu öffnen, abhängig vom verwendeten Browser, den Plugins und den Servereinstellungen. Es klingt so, als würden Sie den Link in einem neuen Fenster öffnen, als würde der Browser die Datei öffnen, anstatt sie herunterzuladen, und dann hat sich der Browser für den Download entschieden. Dadurch bleibt dem Benutzer eine heruntergeladene Datei und ein leeres Fenster, über das Sie keine Kontrolle haben.

Um das Herunterladen zu erzwingen, sollten Sie den Content-Type-Header für das Ziel des Links zu application/force-download einstellen können. Wie Sie dies tun, hängt von Ihrer Konfiguration ab, und davon, ob die Datei direkt heruntergeladen wird (in diesem Fall wird es eine Servereinstellung sein) oder über PHP oder .Net (in diesem Fall ist es einfach, die Kopfzeile programmatisch zu setzen). Stellen Sie außerdem sicher, dass der Hyperlink kein target="_blank" Attribut aufweist, das den Link in einem neuen Fenster öffnet.

+0

Danke Karl. Das Problem ist nicht das Herunterladen der Datei, sondern das Schließen des Popup-Fensters nach dem Download. – Ankit

+1

Mit dem richtigen Content-Type-Header und keinem Ziel = "_ blank" (oder window.open) sollte das Popup nicht einmal an erster Stelle geöffnet werden. –

+0

Ich möchte das Popup öffnen und eine benutzerdefinierte Nachricht in diesem Fenster anzeigen. Aber sobald das Herunterladen abgeschlossen ist, möchte ich, dass das Fenster geschlossen wird. – Ankit

2

Sie eine Sache tun kann:

nach dem "Datei Schreiben von Code in Servlets oder Streben Aktion Verwendung"

Schritt 1: Aufruf "response.flushBuffer();" Schritt 2: Rufen Sie response.sendRedirect ("close.htm")

wo close.htm ist:

<html> 


<script> 


window.close(); 

</script> 

</html> 

Einziges Problem zu identifizieren, wenn der Download abgeschlossen ist. Ich denke nicht, dass es einen möglichen Weg dafür gibt. Wie auch immer, es besteht die Möglichkeit, das Popup offen zu lassen, bis der Download abgeschlossen ist. Sie können das Pop-up einfach schließen, sobald der Download gestartet wurde. Verwenden Sie unter JavaScript, nicht wahr?

pop_up= window.open("", "PopUpName"); 
pop_up.document.write('POPUP TEXT');  
pop_up.close(); 
0

Es ist Browser-Funktionalität, Sie können die Browser-Einstellung dafür ändern. Sie sollten nicht zum Programmieren gehen. Standardmäßig Wenn Sie die Datei in Firefox herunterladen, fragen Sie nach dem Speichern, aber in Crome It's fragt nicht. Sie müssen die Einstellung Ihres Browsers ändern.

Verwandte Themen