IE中的iframe变为空白

时间:2011-12-20 22:27:01

标签: c# asp.net pdf iframe

我有一个包含iframe的aspx页面,它显示了一个pdf(我有一个ashx处理程序在iframe中显示pdf),我还有一个下载按钮,它将一个不同的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
  3. 但他们都没有工作。 iframe在chrome&amp ;;中表现良好FF。 注意:如果我使用asp下载东西:我的ashx的超链接和设置target =“_ blank”它在IE中工作正常,但我需要一些服务器端处理,因此我不能使用此方法。

1 个答案:

答案 0 :(得分:1)

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

您将回发到服务器,然后清除整个输出,将文件放入流中并发送。从技术上讲,我会说IE浏览页面是正确的。

这是假设您的下载按钮位于iframe中?

我会尝试的解决方案是将该下载链接放在另一个iFrame中,或者让其他页面下载它,当您按下链接时,它会打开刚刚输出文件的新页面。因此窗口闪烁但随后消失并出现保存对话框按钮。但弹出窗口拦截器可能会试图阻止它。