Greasy Fork

移除联合早报zaobao.com内容顺序干扰

修复联合早报网页段落顺序被打乱的问题。请用中国ip访问 联合早报 zaobao.com 以得到完整内容。

// ==UserScript==
// @name         移除联合早报zaobao.com内容顺序干扰
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  修复联合早报网页段落顺序被打乱的问题。请用中国ip访问 联合早报 zaobao.com 以得到完整内容。
// @author       ChatGPT
// @license MIT
// @match        *://*.zaobao.com/*
// @match        *://*.zaobao.com.sg/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function sortAndRestore() {
        const container = document.querySelector('.article-body');
        if (!container) return;

        const elements = Array.from(container.querySelectorAll('[data-s]'));

        const withOrder = elements.map(el => {
            const orderStyle = window.getComputedStyle(el).order || 0;
            const orderAttr = el.getAttribute('style')?.match(/order\s*:\s*(-?\d+)/);
            const order = orderAttr ? parseInt(orderAttr[1]) : parseInt(orderStyle) || 0;
            return {el, order};
        });

        // 移除原始 order 样式
        withOrder.forEach(item => {
            item.el.style.order = '';
            item.el.removeAttribute('style');
        });

        // 按照 order 排序
        withOrder.sort((a, b) => a.order - b.order);

        // 清空并重插入排序后的内容
        container.innerHTML = '';
        withOrder.forEach(item => container.appendChild(item.el));
    }

    // 等页面加载完后执行
    window.addEventListener('load', () => {
        setTimeout(sortAndRestore, 1000);
    });
})();