tampermonkey 使用原生JS打印节点 不使用 jspdf 和 html2canvas等第三方库,带上原始节点的样式
时间: 2024-01-24 18:17:05 浏览: 18
可以使用原生JS中的`window.print()`方法将当前页面打印为PDF格式,同时保留节点的样式。以下是一个简单的示例代码:
```javascript
// 获取需要打印的节点
const nodeToPrint = document.getElementById("nodeId");
// 创建一个新的窗口,加载需要打印的节点
const printWindow = window.open("", "PrintWindow");
printWindow.document.write(nodeToPrint.outerHTML);
// 等待节点加载完成后,执行打印操作
printWindow.onload = function() {
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
};
```
在上面的代码中,我们首先获取需要打印的节点,并将其外部HTML写入一个新的窗口中。然后,我们等待新的窗口加载完成后,执行打印操作。在打印操作中,我们使用`print()`方法将窗口中的内容打印为PDF格式。
注意:由于浏览器的安全机制,不能直接访问跨域的节点,否则会出现跨域错误。如果需要打印跨域的节点,可以将节点内容传递到服务器端进行处理,并返回处理后的内容到客户端进行打印操作。