js实现弹出窗口打印
使用 window.print() 方法
通过 window.print() 可以直接调用浏览器的打印功能,弹出打印对话框。适用于打印当前窗口内容或指定区域。
// 打印整个页面
function printPage() {
window.print();
}
// 打印指定元素(需配合CSS隐藏其他内容)
function printElement(elementId) {
const printContent = document.getElementById(elementId).innerHTML;
const originalContent = document.body.innerHTML;
document.body.innerHTML = printContent;
window.print();
document.body.innerHTML = originalContent; // 恢复原内容
}
指定打印样式(CSS)
通过 @media print 控制打印时的样式,隐藏非必要元素(如导航栏、按钮)。
@media print {
.no-print {
display: none;
}
body {
font-size: 12pt;
margin: 0;
padding: 0;
}
}
使用 iframe 打印特定内容
动态创建 iframe,加载需打印的内容后调用打印。
function printIframe(content) {
const iframe = document.createElement('iframe');
iframe.style.display = 'none';
document.body.appendChild(iframe);
const frameDoc = iframe.contentDocument || iframe.contentWindow.document;
frameDoc.open();
frameDoc.write(content);
frameDoc.close();
setTimeout(() => {
iframe.contentWindow.focus();
iframe.contentWindow.print();
document.body.removeChild(iframe);
}, 300);
}
注意事项
- 浏览器兼容性:
window.print()主流浏览器均支持,但样式可能因浏览器差异需额外调整。 - 弹出限制:部分浏览器可能拦截打印弹窗,需用户手动允许。
- 内容恢复:若修改 DOM 打印指定区域,完成后需及时恢复原始内容。







