目前,我在使用PDF文档填充iframe时出现问题,但此问题仅发生在IE中。
基本布局:
我有一个包含项目列表(附件)的屏幕,可以是图像,文本或pdf。当用户点击其中一个项目时 - 它将调用控制器操作[ViewAttachment],它将返回所请求的项目并将其显示在iframe中。
目前适用于所有数据类型,但IE中的PDF除外。 (Firefox,Chrome等都会在iframe中显示PDF而不会出现问题。)
我以前使用的是Adobe Reader 9,最近升级到10,希望能解决这个问题。我会附上一些代码,看看是否有人对如何解决这个问题有任何建议。
填充iframe的代码:(为了便于阅读,移至两行)
$(".viewattachment").live('click',function ()
{
$("iframe#test").attr("src","<%=Url.Action("ViewAttachment","Images") %>?
attachment=" + $(this).next().val());
});
ViewAttachment Controller Action:
public ActionResult ViewAttachment(string attachmentGuid)
{
Attachment attachment= imageAgent.GetAttachment(attachmentGuid);
Stream resultStream = new MemoryStream();
resultStream = StorageProviders[attachment.ProviderName]
.ReadFile(attachment.FileReference);
resultStream.Position = 0;
FileStreamResult result = new FileStreamResult(resultStream,
attachment.ContentType);
return result;
}
备注:
答案 0 :(得分:1)
经过几种不同的方法和迭代测试 - 我确定它是IE8-9和Adobe Reader 9-10版本之间的冲突。我在包含iframe的窗口中添加了以下元标记,并解决了所有问题:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
这应该至少有效,直到进行更新/修复。
答案 1 :(得分:0)
您是否尝试过直接点击pdf网址?如果它在浏览器中加载,那么您可以将问题缩小到iframe。如果弹出Adobe Reader,那么您就知道IE插件存在问题。
答案 2 :(得分:-1)
我在使用spring mvc时遇到了同样的问题。我发布了如果我把Iframe放在某些标签中,比如'util:panel',iframe不会在IE 8中加载de pdf内容。当我把iFrame放在标签之外时,一切正常。