HTMLembedded式PDF iframe

我已经使用该标签来embeddedPDF文件。

<iframe id="iframepdf" src="files/example.pdf"></iframe> 

这在Chrome,IE8 +,Firefox等工作正常,但由于某些原因,当有人在IE8中查看它,文件正在下载,而不是embedded。 我知道这个浏览器是过时的,但它是我的办公室内的标准浏览器,因此,网站必须为此而devise。

有没有人有任何想法,为什么发生这种情况,我可以修复它,否则把一个错误消息,而不是让文件下载?

下载可能是因为没有安装Adobe Reader插件。 在这种情况下IE浏览器(无论哪个版本)并不知道如何渲染它,它只是简单地下载文件(Chrome,例如,有自己的embedded式PDF渲染器)。

那就说。 <iframe>不是显示PDF的最佳方法(不要忘记与移动浏览器兼容,例如Safari)。 一些浏览器将始终在外部应用程序(或另一个浏览器窗口)内打开该文件。 我发现的最好和最兼容的方式有点棘手,但适用于我试过的所有浏览器(甚至非常过时):

保持你的< iframe>但不要在里面显示一个PDF,它会被填充一个由<object>标签组成的HTML页面。 为您的PDF创build一个HTML包装页面,应该如下所示:

 <html> <body> <object data="your_url_to_pdf" type="application/pdf"> <embed src="your_url_to_pdf" type="application/pdf" /> </object> </body> </html> 

当然,你仍然需要在浏览器中安装合适的插件。 另外,如果您需要在移动设备上支持Safari,请看看这篇文章 。

1。 为什么嵌套<embed><object>里面? 你会在这里find答案。 您可以(应该)为您的用户(或内置查看器,请参阅下一段)提供自定义消息,而不是嵌套<embed>标签。 现在的<object>可以不用担心, <embed>是没用的。

第2位。 为什么一个HTML页面? 所以如果PDF阅读器不被支持,你可以提供一个后备。 内部查看器,纯HTML错误消息/选项等等…

检查PDF支持是非常棘手的,所以你可以为你的客户提供一个替代的查看器,看看PDF.JS项目,这是相当不错的,但是对于桌面浏览器来说,渲染质量不如原生 PDF渲染器好(我没有我认为,由于屏幕尺寸,在移动浏览器上看不出任何区别)。

如果浏览器安装了pdf插件,则执行该对象,否则使用Google的PDF Viewer将其显示为纯HTML:

 <object data="your_url_to_pdf" type="application/pdf"> <iframe src="https://docs.google.com/viewer?url=your_url_to_pdf&embedded=true"></iframe> </object> 

IFRAME

 <iframe id="fred" style="border:1px solid #666CCC" title="PDF in an i-Frame" src="PDFData.pdf" frameborder="1" scrolling="auto" height="1100" width="850" ></iframe> 

目的

 <object data="your_url_to_pdf" type="application/pdf"> <embed src="your_url_to_pdf" type="application/pdf" /> </object>