下载文件后关闭浏览器弹出页面

时间:2010-01-18 10:33:22

标签: javascript html

当用户点击超链接时,我打开一个下载文件的弹出窗口。下载后,显示打开/保存对话框。我想在下载完成后关闭弹出窗口(当提示用户保存文件时)。 我已经尝试过window.close方法,但它不起作用,因为上下文不是弹出窗口,而是打开/保存对话框。

4 个答案:

答案 0 :(得分:5)

我认为你无法以编程方式控制它。这是特定于浏览器的事情,某些浏览器允许您勾选复选框以关闭窗口等等。

答案 1 :(得分:2)

你可以做一件事:

在“servlet中使用文件编写代码或使用struts操作”

之后

第1步:调用“response.flushBuffer();” 第2步:调用response.sendRedirect(“close.htm”)

其中close.htm是:

<html>


<script>


window.close();

</script>

</html>

唯一的问题是确定下载是否完整。我不认为有可能这样做。无论如何,有任何使用保持弹出窗口打开直到下载完成。您可以在启动下载后关闭弹出窗口。使用下面的JavaScript,不是吗?

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

答案 2 :(得分:1)

浏览器习惯决定是否尝试下载文件或在浏览器窗口中打开文件,具体取决于所使用的浏览器,插件和服务器设置。听起来你可能在新窗口中打开链接,好像浏览器打开文件而不是下载它,然后浏览器选择了下载。这将为用户留下一个您无法控制的下载文件和空白窗口。

要强制下载,您应该能够为application / force-download链接的目标设置Content-Type标头。如何执行此操作取决于您的设置,以及文件是否直接下载(在这种情况下它将是服务器设置)或通过PHP或.Net(在这种情况下,以编程方式设置标题很容易)。还要确保超链接没有target="_blank"属性,可以在新窗口中打开链接。

答案 3 :(得分:0)

这是浏览器功能,您可以更改浏览器设置。你不应该去编程。默认情况下,如果你要在firefox中下载文件,它会要求保存,但在crome它没有问。 您需要更改浏览器的设置。