【发布时间】:2019-01-27 05:01:58
【问题描述】:
我想使用新窗口打印部分 HTML。
var cssLink = document.getElementByTagName('link')[2];
var prtContent = document.getElementById('print_body');
var WinPrint = window.open('','','left=0,top=0,width=1000,height=auto,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.getElementsByTagName('head')[0].appendChild(link);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
但是有时当 WinPrint 进行系统打印时,CSS 文件仍然没有加载。
我该如何解决?
【问题讨论】:
-
这段代码何时触发?点击一下?或者就像它加载页面一样?这段代码放在哪里?
-
我认为您需要以某种方式预加载 css 文件或至少在新窗口中侦听加载事件,您是否尝试在 WinPrint.onload 函数中调用 print 方法?如果这不起作用,那么您可能需要在 ajax 调用中以纯文本格式请求该 css 文件的内容,并将其直接注入到样式标记内新窗口的 DOM 中
-
此代码在单击打印按钮时运行
标签: javascript jquery html css google-chrome