观网·风闻社区,屏蔽部分用户贴的办法

有时候有些用户的贴子不想看,但总会刷到,没办法,论坛不支持屏蔽用户功能,只能求助浏览器插件了。

一些运行第三方脚本的插件都可以,比如油猴、篡改猴之类的。

500

然后自己右键审查元素看一下每个用户贴的结构,大概能看到用户名和用户ID

500

然后屏蔽的代码,不算复杂:

// ==UserScript==

// @name         屏蔽用户

// @namespace    http://tampermonkey.net/

// @version      1.1

// @description  屏蔽观察者网恶心用户的所有帖子

// @author       You

// @match        https://user.guancha.cn/*

// @grant        none

// ==/UserScript==

(function() {

    'use strict';

    // 目标用户ID

    const targetUserId = '1412892';

    // 目标用户名(可选,用于额外检查)

    const targetUserName = '露痕小号';

    // 查找并隐藏目标用户的帖子

    function hideUserPosts() {

        // 查找所有用户帖子项

        const posts = document.querySelectorAll('.index-list-item');

        posts.forEach(post => {

            // 在帖子中查找用户链接

            const userLink = post.querySelector(`a[href="/user/personal-homepage?uid=${targetUserId}"]`);

            if (userLink) {

                // 可选:检查用户名是否匹配(防止UID变更等情况)

                const userNameSpan = userLink.querySelector('span');

                if (userNameSpan && userNameSpan.textContent === targetUserName) {

                    post.style.display = 'none';

                } else {

                    post.style.display = 'none'; // 仅根据UID隐藏

                }

            }

        });

    }

    // 初始执行

    hideUserPosts();

})();

替代成你想屏蔽的用户名字和ID就行了。这个是屏蔽直接打开时候显示的,如果鼠标往下滚,还可能刷出来,这时候就需要监测鼠标滚动,定时执行屏蔽代码了。

// 监听DOM变化(用于处理动态加载的内容)

    const observer = new MutationObserver(hideUserPosts);

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

    // 监听滚动事件,检测无限滚动加载

    let lastScrollTop = 0;

    let scrollCheckTimer = null;

    window.addEventListener('scroll', function() {

        // 防抖处理

        if (scrollCheckTimer) {

            clearTimeout(scrollCheckTimer);

        }

        

        scrollCheckTimer = setTimeout(function() {

            const scrollTop = window.pageYOffset || document.documentElement.scrollTop;

            

            // 只在向下滚动时检查

            if (scrollTop > lastScrollTop) {

                // 检查是否接近底部(触发无限滚动)

                const scrollHeight = document.documentElement.scrollHeight;

                const clientHeight = document.documentElement.clientHeight;

                

                if (scrollTop + clientHeight >= scrollHeight - 100) {

                    // 延迟执行,确保新内容已加载

                    setTimeout(hideUserPosts, 500);

                }

            }

            

            lastScrollTop = scrollTop;

        }, 200);

    });

    // 额外:定期检查(作为备用方案)

    setInterval(hideUserPosts, 3000);

​嘿嘿,估计也有想屏蔽我的贴的用户,如果帮到了你,给我点个赞吧。

站务

全部专栏