首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE9,下载,关闭弹出窗口

IE9,下载,关闭弹出窗口
EN

Stack Overflow用户
提问于 2011-11-26 01:00:59
回答 3查看 2K关注 0票数 11

因此,在我的应用程序中,用户可以将他们的工作导出到excel。

它的工作方式是打开一个弹出窗口(window.open(...)),然后父母将数据写入表单,然后将表单发送回服务器。

服务器生成该文件,并将其向下传输到弹出窗口,在该窗口中会出现下载对话框。它还使用令牌写入cookie。

此令牌对于每个下载弹出窗口都是唯一的,当窗口看到该cookie (定期检查)时,它会在用户收到文件下载提示时以window.close()关闭自身。

这在IE7和IE8中非常有效

但是,由于IE9决定删除该对话框,并将其替换为infobar,因此在用户可以执行下载操作之前窗口就会关闭,如果用户单击了它,如果不手动打开downloads对话框,他们永远不会知道什么时候下载完成。

作为临时解决方案,弹出窗口不再关闭。

然而,我希望能够为用户关闭它,因为一旦他们的下载开始,对他们来说就完全没有用了。

如何在关闭此窗口的同时仍能在IE9中提醒用户他们的下载已完成并且可以打开?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-06 18:29:46

就在不久前,我做了类似的事情。我的解决方案是去掉window.open,转而使用Content-Disposition强制浏览器下载文档,而不是打开

在生成Excel文档之前,更改服务器代码以插入此header,然后将所有下载按钮/链接更改为普通链接,如<a href="server/document">Download the report as Excel</a>

代码语言:javascript
复制
Content-Disposition: attachment; filename=someFilename.xls

编辑:对不起,我错过了5分钟渲染时间的部分。

只需少量的Javascript,您仍然可以使用Content-Disposition。在生成文档时让服务器返回报告。然后关闭window.open打开的窗口,让主窗口加载带有Content-Disposition头的文档。

票数 2
EN

Stack Overflow用户

发布于 2011-12-01 00:11:01

使用iframe -他们工作得更好,你有更多的控制。只需设置display: none;

票数 3
EN

Stack Overflow用户

发布于 2011-12-01 00:13:20

你可以做一个超文本标记语言的注释,使关闭弹出窗口的代码行只影响非IE9的浏览器...http://www.unintentionallyblank.co.uk/2006/09/19/if-internet-explorer-then-do-something-else-a-how-to/

代码语言:javascript
复制
<!--[If lt IE 9]> 
    <script>
        //your code here
    </script>
<![endif]-->

应该行得通。这会使IE 9之前的所有版本都执行您要放入其中的脚本。这必须在HTML部件中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8272177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档