【发布时间】:2017-08-16 14:20:44
【问题描述】:
我正在尝试使用打印 Material MDDialog 组件的 html 文档 window.print() 如代码中所示,它工作正常,但是当打印窗口关闭时问题开始了,之后没有任何工作并且我的应用程序冻结我的意思是没有任何工作(关闭对话框,单击链接。 ..) 我认为问题在于更改正文标签 innerHTML 但不知道如何解决?
export class someClass {
@ViewChild('printContent') printContent;
printDocument() {
const restorePage = document.body.innerHTML;
const content = this.printContent.nativeElement.innerHTML;
document.body.innerHTML = content;
window.print();
document.body.innerHTML = restorePage;
}
}
【问题讨论】:
-
你不想打印的内容不能加
display: none吗?我相信浏览器足够聪明,可以理解他们不需要打印那部分。 -
我正在尝试只打印 Material MDDialog 的 html 文档而不是整个页面,请您给我更多描述
-
我的意思是:就在
window.print()之前,隐藏您不想打印的所有内容。之后,再次显示。 -
我在这个页面中有 100 个内容你的意思是我应该一个一个地隐藏或者有一些 javascript 的解决方案 FYI 我的代码有什么问题我的代码有什么解决方案吗?
-
你可以创建一个 css 类:
body.print-mode * :not[.printable] { display: none; }。将printable类添加到要打印的元素中。在调用window.print()之前将print-mode类添加到您的body标记中,然后将其删除。那应该隐藏所有没有.printable的元素。
标签: javascript html css angular typescript