为什么使用window.print打印的页面只有第一页。其他页面没有了。并且我希望打印的是一个弹窗的内容,竟然把弹窗的样式边框和打印的按钮都打印进去了

可以单独的设置打印的样式、

复制代码
@media print {
  @page {
    size: A4;//默认A4的纸张
    margin: 10mm; /* 上下左右 10mm */
  }
  body {
    height: auto !important; //不设置高度。避免只有一页
    padding: 0 !important;
    margin: 0 !important;
    overflow: auto !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
  }
.print-no{
   display:none;//在打印的时候不显示
 }
}

但是发现设置了之后不起作用。或许是你放在style的scoped里面了。拿出来试试。


如果想使用插件推荐使用

复制代码
vue3-print-nb

如果你不想使用插件,推荐做法:使用独立的打印容器 + 全局打印样式隐藏非打印内容。

复制代码
const handlePrint = () => {
  const printContent = document.querySelector('.print-container').cloneNode(true); //print-container是你要打印的html的class标签

  // 创建一个干净的打印窗口容器
  const printWindow = window.open('', '_blank');
  printWindow.document.write(`
    <!DOCTYPE html>
    <html>
      <head>
        <title>打印</title>
        <style>
          body {
            font-family: SimSun, "宋体", serif;
            font-size: 12pt;
            line-height: 1.3;
            margin: 0;
            padding: 10mm;
            background: #fff !important;
          }
          /* 这里可以内联你原有的打印样式 */
          .print-table { width: 100%; border-collapse: collapse; }
          .print-table td { border: 0.5pt solid #000; padding: 4pt 6pt; }
  
          /* 其他必要样式... */
        </style>
      </head>
      <body>
        ${printContent.outerHTML}
      </body>
    </html>
  `);
  printWindow.document.close();
  printWindow.focus();

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

✅ 优点:完全脱离当前页面上下文,不会受弹窗、遮罩、全局样式干扰。还可以单独的设置样式。

相关推荐
+VX:Fegn08954 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·课程设计
半个落月5 小时前
LangChain.js Agent Memory 实战(下):用 Milvus 构建可检索的长期记忆
javascript·langchain
半个落月5 小时前
LangChain.js Agent Memory 实战(上):从内存对话、文件持久化到截断与摘要
javascript·langchain
Nicander5 小时前
我给 Excalidraw 做了一个本地工作区:DrawSpace
前端·开源
linux_cfan7 小时前
17 · 引擎适配器全景:HLS/DASH/Vimeo/Mux/Cast
前端·javascript·音视频
计算机魔术师8 小时前
烧掉2780亿美元还不够?OpenAI的资本豪赌让人头皮发麻
前端
IT_陈寒8 小时前
Java线程池用错参数,我的服务居然悄悄崩溃了
前端·人工智能·后端
卡布鲁9 小时前
React useMemo 与 useCallback 完全指南:原理、场景与避坑
前端·react.js
子非鱼a9 小时前
【XSS】乌托邦·王的实验室
html·xss
碳基修炼9 小时前
排查记:本地 devServer 是 http,浏览器却把 302 重定向升级成了 https
前端·http