iframe.get(0).contentWindow.print() 设置静默打印
时间: 2024-02-05 21:12:42 浏览: 166
可以使用浏览器提供的 `@media print` CSS 属性来实现静默打印。具体方法如下:
1. 在需要打印的页面中,加入以下 CSS 样式:
```css
@media print {
body * {
visibility: hidden;
}
#printableArea, #printableArea * {
visibility: visible;
}
}
```
这个样式会在打印时隐藏页面中的所有元素,除了一个 ID 为 `printableArea` 的元素及其子元素。
2. 在需要触发打印的地方执行以下 JavaScript 代码:
```javascript
var iframe = document.createElement('iframe');
iframe.src = 'about:blank';
iframe.style.display = 'none';
document.body.appendChild(iframe);
var doc = iframe.contentWindow.document;
doc.write('<html><head><title>Print</title>');
doc.write('<link rel="stylesheet" href="path/to/print.css">');
doc.write('</head><body>');
doc.write(document.getElementById('printableArea').innerHTML);
doc.write('</body></html>');
doc.close();
iframe.contentWindow.focus();
iframe.contentWindow.print();
document.body.removeChild(iframe);
```
这个代码会创建一个隐藏的 iframe,然后将需要打印的内容写入 iframe 中,并在 iframe 加载完成后触发打印。其中,`path/to/print.css` 是第一步中的 CSS 样式所在的文件路径。注意,这个代码必须在用户的交互中被调用,否则浏览器会拦截打印请求。
阅读全文