Caf*_*eek 11 javascript internet-explorer-9
因此,在我的应用程序中,用户可以将他们的工作导出到excel.
它的工作原理是打开一个弹出窗口(window.open(...)
)然后父进程将数据写入表单,然后将表单发回服务器.
服务器生成文件,然后将其流回到弹出窗口,出现下载对话框.它还会使用令牌写入cookie.
此令牌对于每个下载弹出窗口都是唯一的,当窗口看到该cookie(定期检查)时,它会window.close()
在用户收到文件下载提示时自行关闭.
这在IE7和IE8中运行良好
但是,因为IE9决定摆脱对话框并用信息栏替换它,所以在用户可以采取行动下载之前窗口关闭,如果他们点击它,他们就不知道何时完成而没有手动打开下载对话框.
作为临时解决方案,弹出窗口不再关闭.
但是,我希望能够为用户关闭它,因为一旦下载开始它对他们完全没用.
如何关闭此窗口并仍然能够在IE9中提醒用户他们的下载已完成且可以打开?
不久前我也做了类似的事情。我的解决方案是摆脱window.open
并改为使用Content-Disposition
强制浏览器下载文档而不是打开它。
更改服务器代码以在生成 Excel 文档之前插入此 HTTP 标头,然后将所有下载按钮/链接更改为普通链接,例如<a href="server/document">Download the report as Excel</a>
Content-Disposition: attachment; filename=someFilename.xls
Run Code Online (Sandbox Code Playgroud)
编辑:抱歉,我错过了五分钟渲染时间的部分。
您仍然可以使用 Content-Disposition 来实现此目的,只需少量 Javascript。生成文档时让服务器返回报告。然后只需关闭 所打开的窗口window.open
,并让主窗口加载具有 Content-Disposition 标头的文档即可。
归档时间: |
|
查看次数: |
1944 次 |
最近记录: |