您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
description
// ==UserScript== // @name TC Log Filter // @namespace namespace // @version 0.1 // @description description // @license MIT // @author tos // @match *.torn.com/page.php* // @grant none // ==/UserScript== const customFilterHTML = ` <div class="customFilters"> <label for="customFilters">Search</label> <input id="customTextFilter" type="text"> </div> ` function waitForSelector(selector) { return new Promise((resolve, reject) => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)) } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)) observer.disconnect() } }) observer.observe(document.body, { childList: true, subtree: true }) }) } waitForSelector('[class^=filtersPanel]').then(filtersPanel => { filtersPanel.insertAdjacentHTML('beforeend', customFilterHTML) document.querySelector('#customTextFilter').addEventListener('change', customTextFilter) }) function customTextFilter(e) { const search_value = e.target.value.toLowerCase() document.querySelectorAll('SPAN[id^=text]').forEach(logEntry => { if (logEntry.innerText.toLowerCase().includes(search_value)) { logEntry.closest('TR').classList.remove('hide') } else logEntry.closest('TR').classList.add('hide') }) }