IE中的iframe变成空白

本文关键字:空白 iframe 中的 IE | 更新日期: 2023-09-27 18:18:21

我有一个aspx页面包含一个iframe显示pdf(我有ashx处理程序在iframe中显示pdf),我也有一个下载按钮,其中onclick流是一个不同的pdf到浏览器作为附件。下载到浏览器代码:(这是在ashx处理程序)

    byte[] bytes =  // get byte array from table
    Response.Buffer = false;
    Response.Clear();
    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType = "application/pdf";
    // [optional]
    Response.AddHeader(
           "Content-Disposition",
           string.Format("attachment; filename={0}", attachmentName)
     );
    Response.OutputStream.Write(bytes, 0, bytes.Length);
    Response.End();

这段代码工作得很好,但是在向浏览器发送此响应后,我的iframe变为空白,我必须刷新页面才能再次看到它。我尝试了大多数的解决方案

  1. http://adamyoung.net/IE-Blocking-iFrame-Cookies
  2. http://forums.asp.net/p/1036628/1433536.aspx

但是没有一个在工作。Iframe在chrome中表现良好&FF。注意:如果我做下载的东西使用asp:超链接到我的ashx和设置目标="_blank"它在IE中工作得很好,但我需要一些服务器端处理,因此我不能使用这种方法。

IE中的iframe变成空白

虽然Chrome和FF将页面留在那里,但这实际上是有意义的。

发送回服务器,然后清空整个输出,在流中放置一个文件并发送。从技术上讲,我认为IE将页面清空是正确的。

这是假设你的下载按钮是在iframe?

我要尝试的解决方案是把下载链接在另一个iFrame或有另一个页面下载它,当你按下一个链接,它打开新的页面,只是输出一个文件。因此,窗口闪烁起来,但随后消失,并出现一个保存对话框按钮。然而,弹出窗口拦截器可能会试图阻止这一点。