再见TechGrow

通过禁止techgrow的请求来阻止TechGrow强制公众号引流弹窗

// ==UserScript==
// @name         再见TechGrow
// @namespace    com.blackfat91
// @version      2024-08-30
// @description  通过禁止techgrow的请求来阻止TechGrow强制公众号引流弹窗
// @author       blackfat91
// @license      WTFPL
// @match        http*://*/*
// @icon         https://open.techgrow.cn/1.2.2/static/img/favicon.ico
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // 在页面开始加载时,替换 document.createElement 函数,从而拦截所有 script 标签
    const originalCreateElement = document.createElement;
    document.createElement = function(tagName) {
        if (tagName === 'script') {
            // 如果标签名是 script,则返回一个新的 script 标签对象
            return new Proxy(originalCreateElement.call(document, tagName), {
                get(target, property) {
                    if (property === 'src') {
                        // 如果读取 src 属性,则判断是否为 readmore.js,如果是则返回空字符串
                        const src = target.getAttribute('src');
                        if (src && src.endsWith('/readmore.js')) {
                            console.log(`Blocked script: ${src}`);
                            return '';
                        }
                    }
                    // 否则返回原始属性值
                    return target[property];
                },
            });
        } else {
            // 对于其他标签名,返回原始对象
            return originalCreateElement.call(document, tagName);
        }
    };
})();