【问题标题】:HTML pdf not showing in safariHTML pdf未在Safari中显示
【发布时间】:2022-06-22 02:20:29
【问题描述】:

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

效果很好,但奇怪的是,它在 Safari 中的行为与在 Firefox 中的行为不同。

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

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

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

以前有没有人遇到过这个问题并且可能知道这个问题的解决方案? google了好多遍,还是不行。

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 );

【问题讨论】:

  • 您的问题中的代码很少。不足以了解它如何与单击事件的处理一起实际工作。您可以尝试使用&lt;iframe&gt; 而不是&lt;embed&gt;
  • 感谢和我一起思考。如果我知道你需要什么,我很乐意分享更多。简化它是一个 jQuery 点击处理程序,它改变嵌入的 src 并执行 $('#invoice_scan').show()。就是这样......我尝试了iframe和object,结果是一样的:-(
  • 谢谢 K J。问题是 safari(而且似乎只有 safari)第一次在嵌入标签(或对象或 iframe)内显示 pdf,以获取我没有的文件名t 自第一次打开窗口后显示,但不是第二次或第三次。所以,如果显示文件名“invoiceABC1”(很好),我会打开另一个文件“invoiceABC2”,一切都很好。但如果不引用页面,尝试再次显示第一张发票 (invoiceABC1) 会导致空白嵌入/对象/iframe。 Firefox 工作正常,只有 safari 有这种奇怪的行为。现在如何解决它....

标签: javascript html jquery pdf safari


【解决方案1】:

我遇到了这个问题,在使用 angular 的对象标签中显示 pdf。 解决方法是从对象标签中删除 type="application/pdf"。

【讨论】:

    猜你喜欢
    • 2021-06-12
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多