Greasy Fork

Greasy Fork is available in English.

嗨皮漫画 - 图片加载优化

一次性加载所有图片,并在加载失败时无限重新加载

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @version      1.3
// @name         嗨皮漫畫 - 圖片載入最佳化
// @name:zh-TW   嗨皮漫畫 - 圖片載入最佳化
// @name:zh-CN   嗨皮漫画 - 图片加载优化
// @name:en Happy Comics Optimization of image loading
// @namespace    https://www.youtube.com/c/ScottDoha
// @description  一次性載入所有圖片,並在載入失敗時無限重新載入
// @description:zh-cn 一次性加载所有图片,并在加载失败时无限重新加载
// @description:en Load all images at once, and reload indefinitely if loading fails.
// @author       Scott
// @match        *://m.happymh.com/reads/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // 獲取頁面中的所有圖片元素
    var images = document.querySelectorAll('img');

    // 載入圖片
    function loadImages() {
        images.forEach(function(image) {
            // 新增圖片載入失敗的監聽器,當載入失敗時重新載入圖片
            image.addEventListener('error', function() {
                this.src = this.src; // 重新載入圖片
            });

            // 載入圖片
            image.src = image.src;
        });
    }

    // 頁面載入完成後立即載入圖片
    window.addEventListener('load', loadImages);

    // 如果頁面內容是動態載入的,則可以使用 MutationObserver 來監聽內容變化並重新載入圖片
    var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.type === 'childList') {
                loadImages(); // 重新載入圖片
            }
        });
    });

    // 開始監聽頁面內容變化
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
})();