2016-06-20 50 views
2

幫助我我迫切需要幫助。現在到真正的問題。在Safari中的新選項卡中打開PDF

我一直在試圖讓我的PDF在Safari的新標籤中打開,但直到現在我只面臨失望。我使用jsPDF生成PDF文件我和早期我用它

doc.save(pdfName+".pdf") 

方法做同樣的,在最新版本的Safari「9.1.1(10601.6.17)」它打破了。我仍然可以使用生成jsPDF的內置選項PDF:

pdf.output('dataurl'); 

,但它往往在同一個選項卡,打開PDF,而這種行爲是極不可取的。我嘗試了各種可用的解決方案來解決這個問題,但都沒有成功。我嘗試過的一些解決方案是:

  1. 使用window.open()不起作用。
  2. 使用location.href不起作用。
  3. 使用doc.output('save','filename.pdf'),doc.output('datauri'),doc.output('dataurlnewwindow'),沒有任何效果。
  4. 此外,嘗試通過創建一個錨標記並將其目標設置爲'_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是如何處理的。任何幫助,將不勝感激。

回答

0

您可以嘗試輸出blob。然後爲此生成一個Data URI,並在新窗口中打開它:

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

仍然在同一Tab中打開PDF; _; – hkm93

+0

這很奇怪..如果您嘗試打開任何其他網址,它是否仍然在同一個標​​籤中打開?無論如何,也許使用第二個參數可能是解決方案:'window.open(URL.createObjectURL(blob),'_blank');' – demarchisd

+0

沒有工作,不是粗魯,但通過Apple的文檔,發現我們的「標準window.open()JavaScript方法不能用於從全局HTML文件或擴展欄中打開新的選項卡和窗口」https://developer.apple.com/library/safari/documentation/Tools/Conceptual /SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html – hkm93