当前位置:首页 > JavaScript

js实现弹出窗口打印

2026-04-04 17:55:48JavaScript

使用 window.print() 方法

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

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

打印指定区域内容

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

js实现弹出窗口打印

<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 可以定义打印时的特殊样式,隐藏不需要打印的元素。

js实现弹出窗口打印

@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(); // 可选:打印后自动关闭窗口
  };
}

处理打印事件

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

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

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

注意事项

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

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

相关文章

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现复制功能实现

js实现复制功能实现

使用document.execCommand方法(传统方式,已逐渐被弃用) 传统方式通过document.execCommand('copy')实现复制功能,需先选中文本。以下是一个完整示例: fu…

js实现上传图片预览

js实现上传图片预览

使用FileReader实现图片预览 通过FileReader对象读取用户选择的图片文件,并将其显示在页面上。这种方法适用于现代浏览器。 // HTML部分 <input type="file…

jquery和js

jquery和js

jQuery与JavaScript的区别 jQuery是一个基于JavaScript的库,封装了许多常用的功能,简化了DOM操作、事件处理、动画效果等。JavaScript是原生语言,功能更全面但代码…

vue.js实现app

vue.js实现app

Vue.js 实现 App 的方法 Vue.js 可以用于开发移动端 App,主要通过以下两种方式实现: 使用 Capacitor 或 Cordova 进行混合开发 Capacitor 和 Cor…

vue.js实现循环

vue.js实现循环

Vue.js 实现循环的方法 在 Vue.js 中,循环通常通过 v-for 指令实现,用于遍历数组或对象并渲染列表。以下是几种常见的循环实现方式: 遍历数组 使用 v-for 遍历数组时,可以获取…