首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Safari中的新选项卡中打开PDF

在Safari中的新选项卡中打开PDF
EN

Stack Overflow用户
提问于 2016-06-20 12:07:42
回答 2查看 7K关注 0票数 6

帮帮我我急需帮助。现在是真正的问题。

我一直试图让我的pdf打开在Safari的新标签,但到目前为止,我只面临失望。我使用jsPDF来生成PDF,之前我使用的是

代码语言:javascript
运行
复制
doc.save(pdfName+".pdf")

方法进行同样的操作,就像在最新的safari版本"9.1.1(10601.6.17)“中一样。我仍然可以使用jsPDF的内置选项生成pdf:

代码语言:javascript
运行
复制
pdf.output('dataurl');

但是,它倾向于在同一个选项卡中打开PDF,这种行为是非常不可取的。我尝试了网络上的各种解决方案来解决这个问题,但都没有效果。我尝试过的一些解决方案是:

  1. 使用window.open()不起作用。
  2. 使用location.href不起作用。
  3. 使用doc.output(“保存”、“filename.pdf”)、doc.output('datauri')、doc.output('dataurlnewwindow'),什么都不起作用。
  4. 也尝试了假点击,创建一个锚标签,并将其目标设置为'_blank‘,然后使用eventDispatcher刺激鼠标点击,但它也没有工作。就像这样: 变量a= window.document.createElement("a");a.target =‘_http://www.google.com'’;a.href = 'http://www.google.com';var e= window.document.createEvent("MouseEvents");e.initMouseEvent(“单击”、真、真、窗口、0、0、0、0、假、0、空);a.dispatchEvent(e);

对我该怎么办有什么建议吗?我希望我的pdf打开一个新的选项卡,而不是在同一一个与我的应用程序。

P.S :我在Chrome和Mozilla Firefox中为Safari尝试过的每一种解决方案都是完美无缺的,我只是不知道Safari是怎么回事。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2022-07-27 16:32:37

如果你能得到你的PDF格式为base64,这就是你如何使用它(工作在Safari和Chrome)

代码语言:javascript
运行
复制
let base64PDF = "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP....."// your base64 pdf data

let pdfWindow = window.open("", "_blank");

pdfWindow.document.write(
  "<title>Healthcare</title><iframe width='100%' style='margin: -8px;border: none;' height='100%' src='data:application/pdf;base64, " +
  encodeURI(base64PDF) +
  "'></iframe>"
);
票数 0
EN

Stack Overflow用户

发布于 2016-06-20 12:46:27

您可以尝试blob输出。然后为此生成一个数据URI,并在一个新窗口中打开它:

代码语言:javascript
运行
复制
var blob = pdf.output("blob");
window.open(URL.createObjectURL(blob));
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37922208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档