2017-02-07 24 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有一個巨大的頁面與很多