当前位置: 首页 > article >正文

前端 window.print() 打印图片

在使用 document.write 时,确保内容加载完成后再执行其他操作(如 print),可以通过以下方法实现:

1. 使用 window.onload 事件

window.onload 事件会在页面所有资源(包括图片、脚本等)加载完成后触发。

javascript

复制

window.onload = function() {
    document.write("页面已加载完成");
    window.print(); // 确保内容加载完成后再打印
};

2. 使用 DOMContentLoaded 事件

DOMContentLoaded 事件在 HTML 文档完全加载和解析后触发,无需等待图片等资源。

javascript

复制

document.addEventListener("DOMContentLoaded", function() {
    document.write("DOM 已加载完成");
    window.print(); // 确保 DOM 加载完成后再打印
});

3. 使用 setTimeout 延迟

如果内容动态生成,可以使用 setTimeout 延迟打印。

javascript

复制

document.write("动态内容");
setTimeout(function() {
    window.print(); // 延迟确保内容写入完成
}, 1000); // 延迟 1 秒

4. 使用 MutationObserver 监听 DOM 变化

如果内容异步加载,可以使用 MutationObserver 监听 DOM 变化。

javascript

复制

const targetNode = document.body;
const config = { childList: true, subtree: true };

const callback = function(mutationsList, observer) {
    for (let mutation of mutationsList) {
        if (mutation.type === 'childList') {
            window.print(); // 确保内容加载完成后再打印
            observer.disconnect(); // 停止监听
        }
    }
};

const observer = new MutationObserver(callback);
observer.observe(targetNode, config);

document.write("异步内容");

总结

  • window.onload:等待所有资源加载完成。

  • DOMContentLoaded:等待 DOM 加载完成。

  • setTimeout:延迟执行打印。

  • MutationObserver:监听 DOM 变化,确保内容加载完成。


http://www.kler.cn/a/513562.html

相关文章:

  • 云知声语音识别技术:原理、突破与应用前景
  • Python数据可视化(够用版):懂基础 + 专业的图表抛给Tableau等专业绘图工具
  • 常用邮箱有哪些推荐的服务?
  • tcpdump 精准分析vxlan网络
  • 前端缓存策略:强缓存与协商缓存深度剖析
  • 3D可视化定制:开启个性化购物新时代,所见即所得
  • latex如何让目录后面有点
  • 初探——【Linux】程序的翻译与动静态链接
  • 电子商务的安全
  • 【C++】模板(进阶)
  • C# 中 readonly 与 const 的使用
  • mapbox js本地化部署
  • Python Web开发:使用FastAPI构建视频流媒体平台
  • 嵌入式产品级-超小尺寸热成像相机(从0到1 硬件-软件-外壳)
  • 【C++】开源:libpcap网络数据捕获库安装与应用
  • 【python】实现图像中的阴影去除 | 方案和代码
  • Nginx HTTP 服务器基础配置
  • 2090. 半径为 k 的子数组平均值
  • 【深度学习基础】多层感知机 | 多层感知机概述
  • Android开发,待办事项提醒App的设计与实现(个人中心页)