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

如何强制网页加载时立即加载所有图片?loading:eager属性无效

Chrome打印PDF缺图?教你不用滚动就强制加载所有图片

Chrome打印带内嵌图片的网页成PDF时,经常碰到部分图片缺失的情况——得滚到网页底部,浏览器才会从服务器把所有图片加载出来。之前试了用user.js加img { loading: "eager" !important; }的CSS样式,根本没用,因为这些图片的延迟加载是靠监听滚动的脚本控制的。下面给几个不用滚动就能强制加载所有图片的办法:

方法1:浏览器控制台直接跑脚本

打开目标网页后,按F12调出开发者工具,切换到Console标签,复制粘贴下面这段代码回车:

document.querySelectorAll('img').forEach(img => {
  // 替换各种延迟加载属性为真实src
  if (img.dataset.src) {
    img.src = img.dataset.src;
    delete img.dataset.src;
    img.removeAttribute('loading');
  }
  // 强制触发未加载的图片
  if (!img.complete) {
    img.load();
  }
});

原理很简单:大部分延迟加载脚本会把真实图片地址藏在data-src这类属性里,滚到可视范围才替换成src。这段代码直接把这些属性的值赋值给src,还会移除延迟加载的标记,逼着浏览器立刻加载所有图片。

方法2:调打印预览的设置试试

打开打印预览后,点「更多设置」:

  • 把布局改成纵向(之前是横向的话);
  • 勾选「背景图形」;
  • 缩放设为「默认」或「适合页面」。
    有些网站的图片加载逻辑会因为打印触发的渲染事件提前加载图片,说不定就能解决问题。

方法3:临时禁用JavaScript

要是上面的办法都不管用,就临时关掉网页的JS:

  • 按F12开开发者工具,按Ctrl+Shift+P(Windows)/Cmd+Shift+P(Mac)调出命令菜单,输入「Disable JavaScript」执行;
  • 刷新网页,这时候延迟加载的脚本失效,所有图片会直接加载,然后再打印就行。打印完记得重新启用JS。

方法4:用用户脚本自动处理(适合经常碰到的人)

装个Tampermonkey扩展,新建个脚本,把下面的代码粘进去:

// ==UserScript==
// @name         强制加载所有图片
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    window.addEventListener('load', () => {
        document.querySelectorAll('img').forEach(img => {
            // 处理常见的延迟加载属性
            const lazyAttrs = ['data-src', 'data-lazy', 'data-original'];
            lazyAttrs.forEach(attr => {
                if (img.hasAttribute(attr)) {
                    img.src = img.getAttribute(attr);
                    img.removeAttribute(attr);
                }
            });
            img.removeAttribute('loading');
            if (!img.complete) img.load();
        });
    });
})();

这个脚本会在所有网页加载完成后自动处理图片,替换各种延迟加载属性,强制加载所有图片,以后再碰到这类问题就不用手动操作了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:05:10