如何在Safari中使用iframe打开新标签页?

时间:2018-12-26 11:03:05

标签: javascript safari

我想在iframe内用PDF打开一个新标签,

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中有效,但在Windows的safari中却不能。

  

它给了我以下错误。

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 :(得分:0)

好,所以在阅读了一些其他堆栈溢出答案之后,我知道在safari中它在异步模式下不起作用,因此您需要在进行任何服务调用之前编写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>');    })
相关问题