当前位置:首页 > JavaScript

js实现弹出窗口打印

2026-04-04 17:55:48JavaScript

使用 window.print() 方法

在 JavaScript 中,可以通过 window.print() 方法直接调用浏览器的打印功能。该方法会打开打印对话框,用户可以选择打印机或保存为 PDF。

function openPrintDialog() {
  window.print();
}

打印指定区域内容

如果需要打印页面中的特定区域而非整个页面,可以通过 CSS 控制打印内容的显示与隐藏。

<div id="printableArea">
  <!-- 需要打印的内容 -->
  <h1>打印标题</h1>
  <p>打印内容...</p>
</div>

<button onclick="printDiv('printableArea')">打印</button>

<script>
function printDiv(divId) {
  const printContents = document.getElementById(divId).innerHTML;
  const originalContents = document.body.innerHTML;

  document.body.innerHTML = printContents;
  window.print();
  document.body.innerHTML = originalContents;
}
</script>

使用 CSS 控制打印样式

通过 @media print 可以定义打印时的特殊样式,隐藏不需要打印的元素。

@media print {
  .no-print {
    display: none;
  }

  body {
    background-color: white;
    color: black;
    font-size: 12pt;
  }
}

打印新窗口内容

如果需要在新窗口中打开内容并打印,可以使用以下方法:

function printNewWindow(content) {
  const printWindow = window.open('', '_blank');
  printWindow.document.open();
  printWindow.document.write(`
    <html>
      <head>
        <title>打印内容</title>
        <style>
          @media print {
            body { margin: 0; padding: 0; }
          }
        </style>
      </head>
      <body>
        ${content}
      </body>
    </html>
  `);
  printWindow.document.close();

  // 等待内容加载完成后打印
  printWindow.onload = function() {
    printWindow.print();
    // printWindow.close(); // 可选:打印后自动关闭窗口
  };
}

处理打印事件

可以监听打印事件,在打印前后执行特定操作:

js实现弹出窗口打印

window.addEventListener('beforeprint', () => {
  console.log('即将打印');
});

window.addEventListener('afterprint', () => {
  console.log('打印完成');
});

注意事项

  • 某些浏览器可能会阻止弹出窗口,需要用户允许
  • 移动设备上的打印行为可能有所不同
  • 复杂的页面布局可能需要调整CSS以确保打印效果
  • 打印内容中的图片需要确保已完全加载

标签: 弹出窗口js
分享给朋友:

相关文章

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…