{"contents":"// 知乎推荐内容屏蔽器\n(function() {\n 'use strict';\n\n // 屏蔽推荐 feed 中的内容\n function blockRecommendations() {\n // 检查是否在首页\n if (!window.location.pathname.match(/^\\/?$|^\\/follow$/)) {\n return;\n }\n\n // 获取当前激活的标签\n const activeTab = document.querySelector('.Topstory-tabs .TopstoryTabs-link.is-active');\n\n // 如果当前是\"推荐\"标签,隐藏所有内容\n if (activeTab \u0026\u0026 activeTab.textContent.includes('推荐')) {\n hideRecommendFeed();\n }\n\n // 隐藏推荐标签下的所有卡片中带有\"推荐\"标记的内容\n hideRecommendedCards();\n }\n\n // 隐藏推荐 feed\n function hideRecommendFeed() {\n const feedList = document.querySelector('.Topstory-recommend .TopstoryMain');\n if (feedList) {\n feedList.style.display = 'none';\n }\n }\n\n // 隐藏带有推荐标记的卡片\n function hideRecommendedCards() {\n // 隐藏首页推荐的内容项\n const cards = document.querySelectorAll('.Card.TopstoryItem');\n cards.forEach(card =\u003e {\n // 检查是否有\"推荐\"来源标记\n const sourceTag = card.querySelector('.FeedSource');\n if (sourceTag \u0026\u0026 sourceTag.textContent.includes('推荐')) {\n card.style.display = 'none';\n }\n });\n\n // 隐藏整个推荐 feed 区域\n const recommendSection = document.querySelector('[data-za-detail-view-path-module=\"TopstoryRecommend\"]');\n if (recommendSection) {\n recommendSection.style.display = 'none';\n }\n }\n\n // 自动切换到\"关注\"标签\n function switchToFollowTab() {\n // 只在首页执行\n if (!window.location.pathname.match(/^\\/?$/)) {\n return;\n }\n\n const followTab = document.querySelector('.Topstory-tabs .TopstoryTabs-link[href=\"/follow\"]');\n if (followTab \u0026\u0026 !followTab.classList.contains('is-active')) {\n followTab.click();\n }\n }\n\n // 使用 MutationObserver 监听 DOM 变化\n function observeDOM() {\n const observer = new MutationObserver((mutations) =\u003e {\n blockRecommendations();\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n }\n\n // 页面加载完成后执行\n function init() {\n // 先尝试切换到关注标签\n switchToFollowTab();\n\n // 屏蔽推荐内容\n blockRecommendations();\n\n // 监听 DOM 变化以处理动态加载的内容\n observeDOM();\n }\n\n // 确保 DOM 加载完成\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', init);\n } else {\n init();\n }\n\n // 同时也在 window.load 时再次执行,确保所有动态内容都被处理\n window.addEventListener('load', () =\u003e {\n setTimeout(init, 500);\n });\n})();\n","is_binary":false,"path":"content.js","ref":""}