2016-06-20 5 views
2

Помогите мне Я в отчаянной потребности в помощи. Теперь к реальной проблеме.Открыть PDF в новой вкладке в Safari

Я пытаюсь открыть мой pdf-файл на новой вкладке в Safari, но до сих пор я только разочарован. Я использую jsPDF для создания моих файлов PDF и раньше я использовал это

doc.save(pdfName+".pdf") 

способ сделать то же самое, как и в последней версии сафари «9.1.1 (10601.6.17)» он сломался. Я все еще могу генерировать PDF, используя встроенные опции jsPDF в:

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. Затем создайте для этого URI данных и откройте его в новом окне:

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

все еще открывает pdf в той же вкладке; _; – hkm93

+0

это странно .. если вы попытаетесь открыть какой-либо другой URL-адрес, он все равно будет открыт на той же вкладке? В любом случае, возможно, использование второго аргумента может быть решением: '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

Смежные вопросы