📅  最后修改于: 2023-12-03 15:21:09.795000             🧑  作者: Mango
在 Web 开发中,我们经常需要将页面的特定部分打印出来,这时我们可以使用 JavaScript 中的 window.print()
方法。但是在 TypeScript 中使用 window.print()
方法时会提示“对象可能为 'null' 或 'undefined'”的错误,因为 TypeScript 没有办法确定 window
存在。
那么该如何在 TypeScript 中使用 window.print()
方法呢?我们可以通过以下代码片段实现:
const printContent = () => {
const divToPrint = document.getElementById('divId');
if (divToPrint) {
const newWin = window.open('', 'Print-Window');
newWin.document.open();
newWin.document.write(`
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="./styles.css">
</head>
<body>
${divToPrint.innerHTML}
</body>
</html>
`);
newWin.document.close();
newWin.focus();
setTimeout(() => {
newWin.print();
newWin.close();
}, 100);
}
};
以上代码中,我们首先获取要打印的 div 元素,然后新建一个空白页面作为打印页面,在该页面中加载要打印的 div 元素的内容,最后调用 window.print()
方法实现打印。
需要注意的是,在新建的空白页面中引入了一个样式表 styles.css
。这个样式表中需要设置页面的打印样式,比如将页面中某些元素隐藏或改变样式。
总的来说,使用 TypeScript 实现打印页面中的某个 div 需要用到 DOM 操作、新建空白页面和窗口的操作,这需要我们对 TypeScript 和 Web 开发有一定的了解。