You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在新标签页中打印div标签内容,替代弹出窗口实现打印

解决方案

核心改动点:你当前代码弹出独立窗口的原因是window.open传入了第三个窗口特性参数,移除该参数即可默认在新标签页打开内容

修改后的完整代码如下:

function printdiv(printpage) {
    var headstr = "<html><head><title>打印预览</title></head><body>";
    var footstr = "</body></html>";
    // 赋值打印时间
    document.getElementById('<%=lblDateTime.ClientID %>').style.display = "block";
    document.getElementById('<%=lblDateTime.ClientID %>').innerHTML = new Date().toLocaleString();
    var newstr = document.getElementById(printpage).innerHTML;
    // 打开新标签页,移除第三个参数就不会触发独立弹窗
    const w = window.open("", "_blank");
    w.document.write(headstr + newstr + footstr);
    w.document.close();
    w.focus();
    // 不需要自动打印就注释下面这行
    w.print();
    return false;
}
<div id="div_print">
该内容需要在新标签页而非弹窗中打开打印
</div>

注意事项

  • 原代码中存在替换当前页面document.body.innerHTML的冗余逻辑,会导致原页面绑定的所有事件失效,修改后的代码已经将其移除,避免原页面出现异常
  • 如果不需要打开新标签页后立即触发打印,直接注释掉w.print()即可,用户可以在新标签页自行查看内容后手动触发打印
  • 浏览器的弹窗拦截规则会拦截非用户交互触发的window.open调用,请将printdiv函数绑定到按钮点击等用户主动触发的事件上,避免被拦截

内容的提问来源于stack exchange,提问作者rimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:09:00