Internet Explorer 8拒绝从弹出窗口下载文件

时间:2011-09-21 14:38:25

标签: internet-explorer internet-explorer-8 download popup

我正在制作一个网站。在一个地方有一个执行Ajax回调的按钮,然后尝试通过window.open()下载文件。预期的行为是新窗口短暂闪烁然后出现文件下载。这在IE9上工作正常,但IE8似乎有问题,即使禁用了弹出窗口阻止程序。

经过进一步的实验,我发现了另一种奇特的行为。如果我手动将下载的URL输入到新打开的选项卡的地址栏中,我会收到一条错误消息。关于无法下载的一般信息。如果我现在尝试刷新页面(或只是在地址栏中点击ENTER,从而重复相同的请求),下载进行得很顺利。

我预计它可能与content-dispositioncache-control标题有关,但删除这些标题无济于事。也没有将URL添加到“可信站点”区域。

我打算尝试用window.location重新制作它,因为我不喜欢弹出窗口(不是我做的),但我对这种行为感到困惑。是什么原因造成的?

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。事实证明,当您使用AJAX获取文件时,IE无法打开文件。我使用的解决方案是不使用ajax。相反,我使用了一个小jQuery和一个iframe

jquery - on click (dont need ajax/get)

            var dynamicUrl = 'SomeFileService.aspx?someQueryParam=' + input;
            $('#iframePopup').attr('src', dynamicUrl);
            window.frames["#iframePopup"].location.reload();

HTML

<iframe id="iframePopup" style="visibility:hidden;height:0px;width:0px;"></iframe>