下载可能是因为没有安装Adobe Reader插件。在这种情况下,IE(无论哪个版本)不知道如何渲染它,它只会下载文件(例如,Chrome具有自己的嵌入式PDF渲染器)。
就这样说< IFRAME>不是显示PDF的最佳方法(不要忘记与移动浏览器的兼容性,例如Safari)。一些浏览器将始终在外部应用程序(或另一个浏览器窗口)中打开该文件。最好和最兼容的方式我发现有点棘手,但适用于我尝试的所有浏览器(甚至过时):
保持您的< iframe>但是不要在其中显示一个PDF,它将填充一个HTML页面,该页面由< object>标签。为您的PDF创建一个HTML包装页面,应该如下所示:
当然,您仍然需要在浏览器中安装相应的插件。如果您需要在移动设备上支持Safari,请查看this post。
1。为什么嵌套< embed>在< object>?你会发现answer here on SO.而不是嵌套< embed>标签您可以(应该!)为您的用户(或内置的查看器,见下一段)提供自定义消息。现在< object>可以无忧无虑地使用< embed>没用
第2位。为什么是HTML页面?因此,如果不支持PDF查看器,则可以提供回退。内部查看器,纯HTML错误消息/选项等等…
检查PDF支持是很棘手的,因此您可以为客户提供一个备用查看器,查看PDF.JS项目,它对桌面浏览器来说相当不错,但呈现质量 – 不如本机PDF渲染器(我没有看到移动浏览器的差异,因为屏幕尺寸,我想)。