专栏文章

神秘脚本

休闲·娱乐参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minfj7hm
此快照首次捕获于
2025/12/02 01:35
3 个月前
此快照最后确认于
2025/12/02 01:35
3 个月前
查看原文
JS
// ==UserScript==
// @name         CCF文本替换器
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  替换CCF和中国计算机学会文本
// @author       You
// @match        *://*/*
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function() {
    'use strict';

    const replacementRules = [
        { pattern: /中国计算机学会/g, replacement: '货币收藏基金会' },
        { pattern: /CCF/g, replacement: '€€£' }
    ];

    function performTextReplacement() {
        const walker = document.createTreeWalker(
            document.body,
            NodeFilter.SHOW_TEXT,
            {
                acceptNode: function(node) {
                    if (node.parentNode.nodeName === 'SCRIPT' ||
                        node.parentNode.nodeName === 'STYLE' ||
                        node.parentNode.nodeName === 'TEXTAREA') {
                        return NodeFilter.FILTER_REJECT;
                    }
                    return NodeFilter.FILTER_ACCEPT;
                }
            },
            false
        );

        let modifiedNodes = 0;
        let node;

        while (node = walker.nextNode()) {
            let originalText = node.textContent;
            let replacedText = originalText;

            for (const rule of replacementRules) {
                replacedText = replacedText.replace(rule.pattern, rule.replacement);
            }

            if (replacedText !== originalText) {
                node.textContent = replacedText;
                modifiedNodes++;
            }
        }

        if (modifiedNodes > 0) {
            console.log(`CCF替换器: 成功替换了 ${modifiedNodes} 个文本节点`);
        }
    }

    function initializeReplacement() {
        performTextReplacement();

        const observer = new MutationObserver(function(mutations) {
            let shouldReplace = false;

            for (let mutation of mutations) {
                if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
                    shouldReplace = true;
                    break;
                }
            }

            if (shouldReplace) {
                clearTimeout(window.ccfReplacementTimeout);
                window.ccfReplacementTimeout = setTimeout(performTextReplacement, 100);
            }
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true,
            characterData: true
        });

        let lastUrl = location.href;
        new MutationObserver(() => {
            const url = location.href;
            if (url !== lastUrl) {
                lastUrl = url;
                setTimeout(performTextReplacement, 500);
            }
        }).observe(document, { subtree: true, childList: true });
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initializeReplacement);
    } else {
        initializeReplacement();
    }
})();

评论

0 条评论,欢迎与作者交流。

正在加载评论...