Chrome自定义JS扩展无法隐藏LinkedIn动态问题求助
解决LinkedIn动态流无法隐藏的问题
问题根源
你用的#ember24是Ember.js生成的动态ID,每次页面加载、内容刷新甚至路由切换后,这个ID都会变化(比如变成ember56、ember102等),所以固定ID选择器只会在某一次会话临时生效,无法持续工作。
解决方案
替换动态ID选择器,改用稳定的语义化选择器,或者用MutationObserver监听DOM变化来精准捕获目标元素:
方案1:使用稳定选择器+定时检查(简单易实现)
function hideFeed() { // 优先用aria-label定位动态流容器,也可以替换成你在控制台找到的稳定类名 const feedContainer = document.querySelector('[aria-label="动态"]') || document.querySelector('.scaffold-finite-scroll__content'); if (feedContainer) { feedContainer.style.display = 'none'; } setTimeout(hideFeed, 500); } hideFeed();
方案2:用MutationObserver监听DOM(更高效,无延迟)
// 创建观察者实例,监听DOM变化 const observer = new MutationObserver((mutations) => { mutations.forEach(mutation => { if (mutation.addedNodes.length) { const feedContainer = document.querySelector('[aria-label="动态"]'); if (feedContainer) { feedContainer.style.display = 'none'; // 若担心动态流重新加载,可注释掉下面一行,保持持续监听 // observer.disconnect(); } } }); }); // 监听body下所有子节点的变化 observer.observe(document.body, { childList: true, subtree: true });
额外注意
在Custom JavaScript for Web扩展的设置里,确保LinkedIn的脚本执行时机设置为**"Run at document end"或"Run at document idle"**,避免脚本在DOM未加载时提前执行。
内容的提问来源于stack exchange,提问作者zendevil.eth
相关产品推荐
相关产品推荐

