2017-02-07 25 views
1

我想通过JS打印阴影dom的内容。如何使用JavaScript打印Shadow DOM与<style>标签?

似乎很容易:

var reportBody = document.getElementById('daily-report-old').shadowRoot.innerHTML.toString().trim(); 

在此之后,我在reportBody变量的全部内容我想要的。

然后,我将试图打印:

var mywindow = window.open('', 'PRINT', 'height=400,width=600'); 
mywindow.document.write('<html><head><title>' + document.title + '</title>'); 
mywindow.document.write('</head><body >'); 
mywindow.document.write(reportBody); 
mywindow.document.write('</body></html>'); 
mywindow.document.close(); 
mywindow.focus(); 
mywindow.print(); 
mywindow.close(); 

这个代码打印,我发现here

我得到的只是一张空白/空白页。我怀疑shadow dom里面的一些硬编码css正在扮演一些恼人的角色。

有人知道打印影子dom内容的正确方法吗?问候。

+2

1)您是否通过设置简单的reportBody变量来尝试打印功能? 2)你的shadom的内容是什么? – Supersharp

+0

奇怪的是,在控制台中,功能起作用,这就是我以前的尝试,[----但在实际的代码它没有---]对不起,它确实工作 –

+0

里面的影子DOM有一个巨大的页面与很多