TwitterHideAds

Hide ads on Twitter web

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         TwitterHideAds
// @version      1.11
// @author       Addie
// @description:en Hide ads on Twitter web
// @match        https://*twitter.com/home
// @grant        GM_addStyle
// @namespace https://greasyfork.org/users/690175
// @description Hide ads on Twitter web
// ==/UserScript==

'use strict'

const i18n = [
    'Promoted',
    'Sponsored',
    'Sponsorisé',
]

const hideAds = () => {
    [...document.querySelectorAll('[aria-label="Timeline: Your Home Timeline"] article span')]
        .filter( el => i18n.includes(el.innerText.trim()) )
        .map( el => el.closest('[aria-label="Timeline: Your Home Timeline"]>div>div') )
        .forEach( el => {
            if (!el.classList.contains('hidden-by-twitter-hide-ads')) {
                console.log('Ad hidden:');
                console.log(el);
                el.classList.add('hidden-by-twitter-hide-ads');
            }
        });
}

let hideAdsInterval = setInterval(hideAds, 500);

GM_addStyle(`

div.hidden-by-twitter-hide-ads {
    display: none !important;
}

`)