您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically displays replies hidden behind buttons
当前为
// ==UserScript== // @name View More Twitter Replies // @namespace jak0723 // @version 1.2 // @description Automatically displays replies hidden behind buttons // @author JAK0723 // @match http*://*twitter.com/*/status/* // @license MIT // @grant none // @run-at document-idle // ==/UserScript== (function () { 'use strict'; function findAndClick(selector, textContent, observer) { for (let elem of document.querySelectorAll(selector)) { if (elem.textContent === textContent) { elem.click(); observer.disconnect(); } } } const viewMoreSelector = "[href*='i/status/'] div span"; const viewMoreText = "View more replies"; const showMoreSelector = "[role='button'] div div span"; const showMoreText = "Show more replies"; const offensiveSelector = "[role='button'] div span span"; const offensiveText = "Show"; const rootNode = document.querySelector("#react-root"); const config = {childList: true, subtree: true}; const repliesCallback = function (mutationsList, observer) { findAndClick(showMoreSelector, showMoreText, observer); findAndClick(offensiveSelector, offensiveText, observer); }; const rootCallback = function (mutationsList, observer) { findAndClick(viewMoreSelector, viewMoreText, observer); const repliesNode = document.querySelector("[aria-label='Timeline: Conversation']"); if (repliesNode != null) { const repliesObserver = new MutationObserver(repliesCallback); repliesObserver.observe(repliesNode, config); } }; const rootObserver = new MutationObserver(rootCallback); rootObserver.observe(rootNode, config); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址