Я пытаюсь распечатать содержимое DIV, создав новый элемент window, который содержит html, который я хотел бы распечатать. Все работает, и 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
Вы можете попробовать использовать '@media screen, print' вокруг стилей CSS в'/assets/css/main.css' – techfoobar