CSDN滚啊

屏蔽搜索结果中出现的一切有关CSDN的选项

Versión del día 11/10/2024. Echa un vistazo a la versión más reciente.

// ==UserScript==
// @name         CSDN滚啊
// @namespace    http://tampermonkey.net/
// @license MIT
// @version      0.3
// @description  屏蔽搜索结果中出现的一切有关CSDN的选项
// @author       xiaoma
// @match         *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 屏蔽CSDN链接
   function blockCSDNLinks() {
    // 定义CSDN主域名
    const csdnDomain = 'csdn.net';

    // 查找所有链接
    const links = document.querySelectorAll('a');

    links.forEach(link => {
        // 检查链接是否包含CSDN主域名
        if (link.href.includes(csdnDomain)) {
            // 尝试找到包含链接的搜索结果项
            const resultItem = link.closest('.b_ans, .b_widgetContainer, .b_algo');
            if (resultItem) {
                // 隐藏整个搜索结果项
                resultItem.style.display = 'none';
            }
        }
    });
}

    // 使用MutationObserver监听DOM变化
    var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.addedNodes.length) {
                blockCSDNLinks();
            }
        });
    });

    // 配置观察器选项: 观察子节点的变化
    var config = { childList: true, subtree: true };

    // 选择需要观察变动的节点
    var targetNode = document.body;

    // 启动观察器
    observer.observe(targetNode, config);

    // 初始执行一次,以处理页面加载时已经存在的链接
    blockCSDNLinks();

    // 监听页面滚动到底部事件,这通常是加载更多搜索结果的触发条件
    window.addEventListener('scroll', function() {
        var nearBottom = window.innerHeight + window.scrollY >= document.body.offsetHeight - 500;
        if (nearBottom) {
            blockCSDNLinks();
        }
    });
})();