当用户点击超链接时,我打开一个下载文件的弹出窗口。下载后,显示打开/保存对话框。我想在下载完成后关闭弹出窗口(当提示用户保存文件时)。 我已经尝试过window.close方法,但它不起作用,因为上下文不是弹出窗口,而是打开/保存对话框。
答案 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它没有问。 您需要更改浏览器的设置。