您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
filter twitter/x media tab
// ==UserScript== // @name Twitter/X filter media tab // @namespace https://greasyfork.org/users/821661 // @match https://x.com/* // @grant GM_addStyle // @version 1.1 // @author hdyzen // @description filter twitter/x media tab // @license GPL-3.0-only // ==/UserScript== function createFilterButtons() { const filterContainer = document.createElement("div"); filterContainer.id = "media-filter-controls"; filterContainer.style.cssText = ` display: none; position: fixed; top: 20px; right: 20px; z-index: 9999; background: rgba(0, 0, 0, 0.8); border-radius: 12px; padding: 12px; gap: 8px; backdrop-filter: blur(10px); `; const buttonStyle = ` padding: 8px 16px; border: none; border-radius: 8px; background: #1d9bf0; color: white; cursor: pointer; font-size: 14px; font-weight: 600; transition: all 0.2s; `; const allBtn = document.createElement("button"); allBtn.id = "all"; allBtn.textContent = "All"; allBtn.style.cssText = buttonStyle; allBtn.onclick = () => document.body.removeAttribute("filter-by"); const imagesBtn = document.createElement("button"); imagesBtn.id = "images"; imagesBtn.textContent = "Images"; imagesBtn.style.cssText = buttonStyle; imagesBtn.onclick = () => document.body.setAttribute("filter-by", "images"); const videosBtn = document.createElement("button"); videosBtn.id = "videos"; videosBtn.textContent = "Videos"; videosBtn.style.cssText = buttonStyle; videosBtn.onclick = () => document.body.setAttribute("filter-by", "videos"); filterContainer.appendChild(allBtn); filterContainer.appendChild(imagesBtn); filterContainer.appendChild(videosBtn); document.body.appendChild(filterContainer); } createFilterButtons(); GM_addStyle(` [filter-by="images"] #media-filter-controls #images, [filter-by="videos"] #media-filter-controls #videos { background: #1a8cd8 !important; scale: 0.95 !important; } body:has([data-testid="primaryColumn"] [role="navigation"] [href$="/media"][aria-selected="true"]) #media-filter-controls { display: flex !important; } [filter-by="videos"] [data-testid="primaryColumn"]:has([role="navigation"] [href$="/media"][aria-selected="true"]) [role="region"] [role="listitem"]:has(a[href*="/photo/"]) { display: none; } [filter-by="images"] [data-testid="primaryColumn"]:has([role="navigation"] [href$="/media"][aria-selected="true"]) [role="region"] [role="listitem"]:has(a[href*="/video/"]) { display: none; } [data-testid="primaryColumn"]:has([role="navigation"] [href$="/media"][aria-selected="true"]) [role="region"] > div { flex-direction: row; flex-wrap: wrap; gap: 4px; margin: 4px 4px 0; } [data-testid="primaryColumn"]:has([role="navigation"] [href$="/media"][aria-selected="true"]) [role="region"] > div *:not([role="listitem"], [role="listitem"] *) { display: contents; } `);