Happy Comics Optimization of image loading

Load all images at once, and reload indefinitely if loading fails.

// ==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
    });
})();