我想在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>');
但这也无济于事。
谢谢。
答案 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>'); })