Greasy Fork is available in English.

Fuck CSDN

在搜索结果中屏蔽 CSDN。支持 Google / Baidu / Bing / 360 搜索

< Spätná väzba na Fuck CSDN

Hodnotenie: Dobré - skript funguje

§
Pridaný: 02.06.2024
Upravený: 02.06.2024

支持作者

作者的脚本很好用,完美屏蔽了CSDN的搜索结果,不过除了CSDN之外还有很多网站也比较恶心,我想一同屏蔽了。 由于本人不懂js,所以让AI帮我修改了一下,目前效果感觉比较满意,特分享出来。

改动部分

改动如下:只需要把原来的function HideCSDN()整个替换为下面的代码即可,然后注意把原来的所有HideCSDN替换为HideSites,因为函数名改了。当然如果保持HideCSDN函数名那么就只需要替换函数的内容即可。

function HideSites(){
    const unwantedSites = ["csdn", "example1", "example2"].map(site => site.toLowerCase()); // 在这里添加需要屏蔽的网址关键词
    const filters = ".source_1Vdff, .iUh30, .b_attribution, .g-linkinfo-a".split(", "); // 原有的筛选类名保持不变
    const Elements = document.querySelectorAll(".result.c-container, .g, .b_algo, .res-list");
    let removedCount = 0; // 用来记录移除的元素总数
    Elements.forEach(function(Item, i) {
        for (let filter of filters) {
            let selectedContent = Item.querySelector(filter);
            if (selectedContent !== null) {
                // 遍历需要屏蔽的网站列表,检查每个网站关键词是否出现在元素内容中
                for (let site of unwantedSites) {
                    if (selectedContent.innerText.toLowerCase().includes(site)) {
                        Item.parentNode.removeChild(Item);
                        removedCount++; // 计数器加1
                        break; // 匹配到任意一个关键词后即移除元素并跳出循环
                    }
                }
            }
        }
    });
    if (removedCount > 0) {// 修改日志输出,反映移除的总条目数
        console.log(`[已屏蔽] 已去除 ${removedCount} 条包含特定内容的条目`);
    }
}

完整改动后代码

// ==UserScript==
中间内容没动
// ==/UserScript==

function isSite(domain) {
    return window.location.href.match(new RegExp("^https?:\/\/[\\w.]+?" + domain))
}
/************这里放上面的HideSites()函数定义,不重复放了,复制过来就行***********************************/

function bind() {
    document.querySelectorAll(".page-item_M4MDr, #form, #page, .ac_wrap").forEach(
        function(Item) {
            Item.addEventListener('mousedown',function () {
                setTimeout(function(){
                    HideSites(); // 调用新函数
                    if (isSite('so.com')) {
                        bind();
                    }
                },1000);
            })
        }
)}

// 绑定回车事件
document.querySelectorAll("input.gLFyf.gsfi, input#kw, input#keyword").forEach(
function(Item) {
    Item.addEventListener('keydown', function () {
    var evt = window.event || arguments.callee.caller.arguments[0];
    if (evt.keyCode == "13") {
        setTimeout(function(){HideSites();},1000);
    }
})})
//进入指定网站后会显示Blocked by Fuck CSDN.并且自动退出
/*if (isSite('csdn.net')) {
    document.body.innerHTML = "Blocked by Fuck CSDN.";
    window.history.go(-1);
}*/

// 调用新函数
HideSites();
bind();

在代码中我把进入网站就后退的代码屏蔽了,因为有些时候还是需要进入某些网站的,只是一般不想在搜索结果中看到,如需使用自行取消注释,对应的判断我也没让AI修改

当然AI修改的代码可能会有我看不出来的问题,不过我自己测试添加了多个关键词后都能得到较好的屏蔽效果,如果有更好的修改请在下方评论

§
Pridaný: 13.06.2024

用 ublacklist 这个插件就好, 支持订阅

§
Pridaný: 04.07.2024

试了一下就算添加了知乎的关键词也不能屏蔽知乎

Pridať odpoveď

Aby ste mohli pridať odpoveď, prihláste sa.