как открыть новую вкладку с iframe в сафари? - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу открыть новую вкладку с PDF внутри iframe,

pdfMake.createPdf(docDefinition).getDataUrl(function(outDoc) {
var win = window.open();

win.document.write('<iframe src="' + outDoc + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;" allowfullscreen></iframe>');    })

Проблема в том, что следующий код работает хорошо в Chrome, Firefox, Opera, но не в Safari в Windows.

Это дает мне следующую ошибку.

TypeError: 'undefined' is not an object (evaluating 'win.document')

Я попытался сначала создать элемент iframe, а затем добавить его документ, но это также не работает,Я тоже пытался,

document.location.href = win.document.write('<iframe src="' + imageData + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;" allowfullscreen></iframe>');

Но это тоже не помогает.

Спасибо.

1 Ответ

0 голосов
/ 28 декабря 2018

ОК. После прочтения некоторых других ответов о переполнении стека я узнал, что в сафари он не работает в асинхронном режиме, поэтому вам нужно написать window.open() перед любыми вызовами вашей службы.

var win = window.open();

pdfMake.createPdf(docDefinition).getDataUrl(function(outDoc) {

win.document.write('<iframe src="' + outDoc + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;" allowfullscreen></iframe>');    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...