如何在<iframe>?</iframe>中打开PDF文件

时间:2012-10-19 12:15:10

标签: javascript html pdf iframe browser

我想在iframe中打开pdf文件。我使用以下代码:

<a class="iframeLink" href="https://something.com/HTC_One_XL_User_Guide.pdf"
   jQuery1640737952376988841="85"> User guide </a>

它在Firefox中正常运行,但在IE8中没有打开。

有谁知道如何让它也适用于IE?

5 个答案:

答案 0 :(得分:38)

使用iframe“呈现”PDF不适用于所有浏览器;这取决于浏览器如何处理PDF文件。某些浏览器(如Firefox和Chrome)具有内置的PDF呈现,允许它们显示PDF内联,而某些较旧的浏览器(可能是旧版本的IE尝试下载该文件)。

相反,我建议您查看PDFObject这是一个将PDF文件嵌入HTML文件的Javascript库。它很好地处理浏览器兼容性,很可能适用于IE8。

在您的HTML中,您可以设置div来显示PDF:

<div id="pdfRenderer"></div>

然后,您可以使用Javascript代码在div

中嵌入PDF
var pdf = new PDFObject({
  url: "https://something.com/HTC_One_XL_User_Guide.pdf",
  id: "pdfRendered",
  pdfOpenParams: {
    view: "FitH"
  }
}).embed("pdfRenderer");

答案 1 :(得分:20)

这是从<iframe>

链接HTTP(S)可访问PDF的代码
<iframe src="https://research.google.com/pubs/archive/44678.pdf"
   width="800px" height="600px" >

小提琴:http://jsfiddle.net/cEuZ3/1545/

编辑:您可以使用<a>标记(onclick事件)中的Javascript在运行时设置iFrame的SRC属性...

编辑2:显然,这是一个错误(但有解决方法):

PDF files do not open in Internet Explorer with Adobe Reader 10.0 - users get an empty gray screen. How can I fix this for my users?

答案 2 :(得分:5)

确保Web服务器使用Content-Disposition = inline发送文件也很重要。 如果您自己阅读文件并将其内容发送到浏览器,则可能不是这种情况:

php中的

看起来像这样......

...headers...
header("Content-Disposition: inline; filename=doc.pdf");
...headers...

readfile('localfilepath.pdf')

答案 3 :(得分:0)

直接 PDF 在手机上不起作用,也不支持响应式 UI。 这是最好的解决方案。 https://stackoverflow.com/a/66548544/2078462

答案 4 :(得分:-4)

这样做:

func runningSum(array: [Int]) -> [Int] {
    return array.reduce([], combine: { (sums, element) in
        return sums + [element + (sums.last ?? 0)]
    })
}

请务必关闭iframe代码。