Pet*_*Law 13 ajax file-io web-applications
我试图让用户通过单击页面上的按钮来下载文件(在这种情况下是myfile.zip),而不会让他们离开页面 - 即浏览器必须保留在当前页面上,并将它们留在他们所在的位置可以继续使用该页面,包括再次单击该按钮(如果他们希望获得该文件的新副本).
我需要这个适用于所有浏览器(IE6-8,Firefox,Chrome,Opera,Safari).
在zip中打包是基于他们的其他交互(其中一些可能部分完成)从同一页面(这些都是通过ajax完成)的一些东西,我不希望他们离开页面,因为他们会失去任何未保存的更改.
tho*_*ter 12
提供下载文件时添加以下标头:
Content-disposition: attachment; filename=filename.zip
Run Code Online (Sandbox Code Playgroud)
大多数浏览器会在清除当前页面之前等待他们加载什么类型的东西,如果它应该作为文件下载,他们将不会离开当前页面(他们将显示另存为对话框)在页面前面,可以解散返回页面).
但是,如果您发现某个浏览器确实离开当前页面,您可以尝试使用小iframe中包含的下载链接,因此只有该帧会发生变化.
我认为这是在新窗口中打开链接的更好解决方案,因为一旦确定它是应该下载的文件,某些浏览器将保持新窗口,因此您最终得到一个空白窗口.
为了避免离开页面(如果您这样做,页面会首先尝试关闭自己,以确保您已保存所有内容,如果没有保存,您会收到警告消息)或留下空白选项卡(我不这样做)就像,也不使用已贬值的目标属性)我使用了一个 iframe,其 src 属性在 javascript 中发生了更改。
除了某些版本的 Opera 之外,这在任何地方都有效,我认为这是可以接受的损失(我可能会通过使用其他解决方案之一加上稍后的浏览器检测来修复这个问题)。
| 归档时间: |
|
| 查看次数: |
3916 次 |
| 最近记录: |