У нас есть IFrame на странице (назовем эту страницу DocViewer.aspx), src которой настроен на другую страницу. Давайте назовем эту другую страницу DocContent.aspx
Перед загрузкой страницы на DocContent.aspx.vb:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'get pdf bytes from session
Dim pdfBytes As Byte() = CType(Session("PDFBytes"), Byte())
'remove pdf bytes from session
Session.Remove("PDFBytes")
With Response
' Set the response type to PDF
.ClearHeaders()
.Buffer = True
.ContentType = "application/pdf"
.AddHeader("Content-Disposition", "inline; filename=" & "midoc.pdf")
.AddHeader("Content-Length", (pdfBytes.GetUpperBound(0) + 1).ToString)
Response.OutputStream.Write(pdfBytes, 0, pdfBytes.Length)
.End()
End With ' response
End Sub
и вот страница DocContent.aspx во всей красе:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="DocContent" Inherits="OurCompany.OurNamespace.DocContent" %>
Причина, по которой мы используем IFrame, заключается в том, что мы можем размещать PDF-файл на странице, которая также запускает некоторые сценарии и имеет дополнительные элементы управления (если выполняется определенное условие, мы открываем модальное диалоговое окно, используя модальное расширитель диалогов, но мы отключили это поведение, и проблема все еще возникает). Не использовать IFrame также не является выполнимым решением. Я проверил настройки безопасности в IE, и все они настроены так, чтобы разрешить отображение IFrames.
В этом и заключается проблема - на некоторых компьютерах с тестером страница отображается в формате pdf. На других мы просто получаем пустую страницу.
Только что видел машину, которая не отображалась, начала отображаться при обновлении до IE7. К сожалению, это не решение, поскольку мы должны поддерживать что-либо вплоть до IE5.5: (
Буду очень признателен за любые идеи, которые есть у кого-либо.
Я также должен упомянуть, что на этих машинах не возникает проблем при переходе на страницу, аналогичную DocContent напрямую (вместо размещения в IFrame).
О, и спасибо заранее за вашу помощь.