我試圖通過創建一個新窗口元素來保存我想打印的html,從而打印DIV的內容。一切正常,css樣式在打印預覽窗口中正確顯示,但當窗口物理打印到文件或打印機時,樣式會丟失。我懷疑print()事件是在加載css之前觸發的,但不知道如何解決這個問題。爲什麼我的CSS不打印?
這裏是我的js代碼
function printDiv (elem)
{
var popup = window.open('','','width=800,height=500,toolbar=no, menubar=no');
popup.document.writeln('<!DOCTYPE html>');
popup.document.writeln('<html><head><title></title>');
popup.document.writeln('<link rel="stylesheet" type="text/css" href="/assets/css/main.css">');
popup.document.writeln('</head><body class="popup-body">');
popup.document.writeln(elem.html());
popup.document.writeln('</body>');
popup.document.writeln('</html>');
popup.print();
popup.close();
}
使用setTimeout(popup.print) – rafaelcastrocouto
您可以嘗試在'/ assets/css/main.css'中的'@media screen,print'打印您的CSS樣式 – techfoobar