HTML pdf 未在 Safari 中显示

问题描述 投票:0回答:3

我有一个 php 页面,显示发票列表。单击任何一张发票都会显示其 pdf 文件。当用户单击任何发票时,嵌入标签的 src 会被 jQuery 更改为相应的 pdf 文件。

工作得很好,但奇怪的是,它在 safari 中的表现与在 Firefox 中的表现不同。

在 Firefox 中,我只需单击发票 -> pdf 显示即可。如果我在那之后点击另一张发票,然后再次点击第一张发票 -> pdf 再次显示。

Safari:如果我重新单击发票,我会得到一个空白的 pdf(嵌入标签)。下载该 pdf 会生成一个 0kb 文件。

似乎只发生在野生动物园中。

有人以前遇到过这个问题并且可能知道这个问题的解决方案吗? 我已经用谷歌搜索并尝试了很多,但它仍然不起作用。

Html:
     <div class="card-body">
           <embed id="invoice_scan" src="" type="application/pdf" width="100%" height="400px" />
     </div>


jQuery:
     $('#invoice_scan').attr('src', '/docs/pdf_file1.pdf );
javascript html jquery pdf safari
3个回答
3
投票

我在使用 Angular 在对象标签中显示 pdf 时遇到了这个问题。 修复方法是从对象标签中删除 type="application/pdf"。


0
投票

我在使用

<object>
标签的 Safari 15.5 中也遇到类似问题。一旦 PDF 被加载,浏览器就会崩溃。为了游猎,我有条件地删除了
type="application\pdf"
。这似乎有效。

替代选项是使用 iFrame 来处理 PDF。

为什么此代码在 MacOS Big Sur Safari 上失败?


0
投票

我在 Safari 上遇到了类似的问题,但删除

type="application/pdf"
属性并没有解决它。我怀疑这与某些缓存问题有关。

我最终在每次按下文件 URL 时将随机查询字符串添加到文件 URL 的末尾,以便每次都会将其作为不同的文件获取。它确实感觉像是一个非常hacky和迂回的解决方案,但可能并不总是实用。

© www.soinside.com 2019 - 2024. All rights reserved.