tampermonkey 使用原生JS打印节点 不使用 jspdf 和 html2canvas等第三方库,带上原始节点的样式
时间: 2024-01-22 22:21:26 浏览: 161
可以使用原生JS的 `outerHTML` 属性和 `window.print()` 方法来实现打印节点并保留原始节点样式。
首先需要获取需要打印的节点元素,然后将其 `outerHTML` 属性赋值给一个新的DIV元素,并将该DIV元素添加到文档中。
接下来,使用CSS样式将该DIV元素通过媒体查询隐藏,以便在打印时不会显示在页面上。
最后,使用 `window.print()` 方法来触发打印操作。
下面是一个示例代码:
```javascript
// 获取需要打印的节点元素
const nodeToPrint = document.getElementById('node-to-print');
// 创建新的DIV元素并将其outerHTML属性设置为节点元素的outerHTML属性
const printDiv = document.createElement('div');
printDiv.innerHTML = nodeToPrint.outerHTML;
// 将新的DIV元素添加到文档中
document.body.appendChild(printDiv);
// 隐藏新的DIV元素以便在打印时不会显示
printDiv.style.display = 'none';
// 触发打印操作
window.print();
// 移除新的DIV元素
document.body.removeChild(printDiv);
```
请注意,该方法只会打印节点元素本身,而不会包含其子元素或后代元素。如果需要打印整个文档或一部分文档,建议使用第三方库如 `html2canvas` 或 `jsPDF`。
阅读全文