屏蔽知乎带货回答

屏蔽掉包含带货链接的回答

// ==UserScript==
// @name         屏蔽知乎带货回答
// @namespace    https://gf.qytechs.cn/zh-CN/users/843575-huixuphys
// @version      0.1
// @description  屏蔽掉包含带货链接的回答
// @author       huixuphys
// @match        https://www.zhihu.com/question/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        GM_addStyle
// @license      GPL-3.0 License
// ==/UserScript==


//hide answers with ads that have already been loaded
var initial_answers = document.getElementsByClassName("List-item");
if (initial_answers.length == 0){
    let answers1 = Array.from(document.getElementsByClassName("Card AnswerCard"));
    let answers2 = Array.from(document.getElementsByClassName("Card MoreAnswers"));
    initial_answers = answers1.concat(answers2);
}
for (var i = 0; i < initial_answers.length; i++){
    let elem = initial_answers[i];
    if (elem.querySelector("div.RichText-MCNLinkCardContainer, div.RichText-Ecommerce, div.RichText-ADLinkCardContainer")){
        elem.hidden = true;
    }
}

//observer configuration to hide ads being loaded
const targetNode = document;
const config = {childList: true, subtree: true};
const callback = (mutationsList, observer) => {
    for (const mutation of mutationsList) {
        for (const target of mutation.addedNodes) {
            if (target.nodeType == 1){
                check_hide_ad(target);
            }
        }
    }
};
const observer = new MutationObserver(callback);
observer.observe(targetNode, config);

//check if an element contains ads and hide the associated answer if true
function check_hide_ad(elem){
    if (elem.className === "RichText-MCNLinkCardContainer" || elem.className === "RichText-Ecommerce" || elem.className === "RichText-ADLinkCardContainer") {
        let answer = elem.closest("div.List-item, div.Card.AnswerCard, div.Card.MoreAnswers");
        if (answer){
            answer.hidden = true;
        }
    }
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址