You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tampermonkey中根据内部SPAN移除含Promoted的DIV

解决LinkedIn推广内容隐藏的Tampermonkey脚本问题

需求与问题

作为Tampermonkey新手,想要隐藏LinkedIn页面中所有包含显示“Promoted”文本SPAN标签的外层DIV。目标HTML结构如下:

<div>
  <div class="relative">
  <div class="ember-view  occludable-update ">

  <span aria-hidden="true">Promoted</span>
  <span class="visually-hidden">Promoted</span>
 </div>
 </div>
</div>

尝试了以下脚本但未生效:

// ==UserScript==
// @name         LinkedIn Ad block
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  I always want my LinkedIn feed in chronological order!
// @include      https://linkedin.com/*
// @include      https://www.linkedin.com/*
// @exclude      https://www.linkedin.com/tscp-serving/*
// @grant        none
// @run-at       document-idle
// @require      https://gist.githubusercontent.com/BrockA/2625891/raw/9c97aa67ff9c5d56be34a55ad6c18a314e5eb548/waitForKeyElements.js
// ==/UserScript==

('div.relative.ember-view:has(span:contains(&quot;Promoted&quot;))').remove();

问题根源

  1. 语法错误:直接用字符串调用remove()是无效的JavaScript语法,没有正确使用DOM或jQuery方法。
  2. 选择器错误:div.relative.ember-view表示同时拥有这两个类的单个div,但实际这是两个嵌套的div,选择器逻辑不匹配HTML结构。
  3. 未处理动态内容:LinkedIn的feed是滚动加载的,静态执行脚本无法捕获后续加载的推广内容,必须用waitForKeyElements监听动态出现的元素。

修复后的脚本

以下脚本可以正确隐藏推广内容:

// ==UserScript==
// @name         LinkedIn Ad block
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  隐藏LinkedIn推广内容,恢复时间线顺序!
// @include      https://linkedin.com/*
// @include      https://www.linkedin.com/*
// @exclude      https://www.linkedin.com/tscp-serving/*
// @grant        none
// @run-at       document-idle
// @require      https://gist.githubusercontent.com/BrockA/2625891/raw/9c97aa67ff9c5d56be34a55ad6c18a314e5eb548/waitForKeyElements.js
// ==/UserScript==

// 监听所有包含"Promoted"文本的span元素(包括动态加载的)
waitForKeyElements('span:contains("Promoted")', function(spanElement) {
    // 根据HTML结构,找到需要移除的最外层div
    const targetDiv = spanElement.closest('div.ember-view').parentNode.parentNode;
    // 移除该div
    targetDiv.remove();
});

脚本说明

  • 利用waitForKeyElements监听页面中所有动态出现的、包含"Promoted"文本的span元素。
  • 通过closest方法找到span所在的ember-view类div,再向上遍历两层父元素,定位到要移除的最外层div。
  • 调用remove()方法直接删除整个推广内容容器。

内容的提问来源于stack exchange,提问作者kuruvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:22:13