首页 文章

在Safari中的新标签页中打开PDF

提问于
浏览
2

帮助我,我迫切需要帮助 . 现在到了真正的问题 .

我一直试图让我的pdf在Safari的新标签中打开,但到现在为止我只是面临失望 . 我正在使用jsPDF生成我的PDF,之前我使用过它

doc.save(pdfName+".pdf")

方法也是如此,就像在最新的safari版本“9.1.1(10601.6.17)”中一样 . 我仍然可以使用jsPDF的内置选项生成pdf:

pdf.output('dataurl');

但是,它倾向于在同一个选项卡中打开PDF,这种行为是非常不受欢迎的 . 我尝试了网上提供的各种解决方案来解决问题,但都没有 . 我尝试过的一些解决方案是:

  • 使用window.open(),不起作用 .

  • 使用location.href不起作用 .

  • 使用doc.output('save','filename.pdf'),doc.output('datauri'),doc.output('dataurlnewwindow'),没有任何作用 .

  • 还尝试通过创建锚标记并将其目标设置为'_blank'进行伪点击,然后使用eventDispatcher刺激鼠标单击,但它也无效 . 像这样的东西:

var a = window.document.createElement("a");
a.target = '_blank';
a.href = 'http://www.google.com';

var e = window.document.createEvent("MouseEvents");
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(e);

关于我应该做什么的任何建议?我希望我的pdf在新选项卡中打开,而不是与我的应用程序相同 .

P.S:我在Safari上面尝试过的每个解决方案都在Chrome和Mozilla Firefox中完美运行,我无法弄清楚与Safari有什么关系 . 任何帮助,将不胜感激 .

1 回答

  • 0

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

    var blob = pdf.output("blob");
    window.open(URL.createObjectURL(blob));
    

相关问题