【问题标题】:How can I force a PDF to download as a fallback?如何强制下载 PDF 作为后备?
【发布时间】:2014-03-11 15:11:22
【问题描述】:

在单击事件时,我想在元素内呈现 PDF,并将其附加到 object 标记中。

作为旧浏览器的后备方案,我想让 PDF 自动下载。 这就是我正在使用的东西

<div class="selected">
    <object data="loader-resources/doc.pdf" type="application/pdf" class="loaded" width="100%" height="100%">
    <p class="error">Your browser cannot display pdf within a website.</p>
    </object>
</div>

我无法通过 HttpResponse 标头中的 Content Disposition 执行此服务器端操作,因为它指向 here,因为如果用户的浏览器支持,我希望 PDF 在页面上呈现。

有什么想法吗?

【问题讨论】:

  • PDFObject 会是一个合适的解决方案吗?基于 JS 并且不适用于移动设备,但我已经在 BrowserStack 中对它进行了测试,可以追溯到 IE 6。在 iOS 6(以及可能不支持此技术的其他操作系统)上,它为用户提供了下载 PDF 的选项 - 在 iOS 上,这只需在新的 Safari 选项卡中打开它。或者 PDF.js 怎么样,它是由 Mozilla 构建的。虽然在 IE 6/7/8 中被破坏,所以它不能解决你原来的问题。最后yepnope.js 可能能够帮助条件加载。

标签: javascript html pdf


【解决方案1】:

旧浏览器,还有什么比简单更好用的呢

<a href="doc.pdf">download</a>

然后在服务器上设置另一个路由以备后备。

对于不是旧的浏览器,您可以将 pdf 作为字符串下载并执行(在 IE 9 及以下版本中中断):

<a href='data:application/pdf;content-disposition:attachment;filename=doc.pdf,' + pdfstring</a>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 2010-12-28
    • 1970-01-01
    • 2012-05-16
    • 2014-09-02
    • 1970-01-01
    • 2012-08-13
    • 2012-02-23
    相关资源
    最近更新 更多