您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Highlight posts with keywords you input. Help to filter the important messages you need.
// ==UserScript== // @license MIT // @name d2jsp // @namespace http://tampermonkey.net/ // @version 1.0 // @description Highlight posts with keywords you input. Help to filter the important messages you need. // @author kingpeter // @match https://forums.d2jsp.org/* // @icon https://www.google.com/s2/favicons?sz=64&domain=d2jsp.org // @grant none // ==/UserScript== (function() { 'use strict'; // 从 localStorage 获取保存的文本内容 var savedText = localStorage.getItem('textareaContent') || ''; // 更新 a 标签样式的函数 function updateLinkStyles() { var lines = (localStorage.getItem('textareaContent') || '').split('\n').map(line => line.trim()).filter(line => line !== ''); document.querySelectorAll('tbody a').forEach(function(a) { if (lines.some(line => a.textContent.toLowerCase().includes(line.toLowerCase()))) { a.style.color = 'blue'; a.style.fontSize = '190%'; a.style.fontWeight = 'normal !important'; if(a.querySelector('b')) a.querySelector('b').fontWeight = 'normal !important'; } else { a.style.color = 'black'; // 恢复默认颜色 a.style.fontWeight = 'normal !important'; if(a.querySelector('b')) a.querySelector('b').fontWeight = 'normal !important'; a.style.fontSize = ''; // 恢复默认字体大小 } }); } // 遍历所有 dl.c 元素 document.querySelectorAll('dl.c').forEach(function(dl) { console.log("run") // 修改 dl.c 的 padding 样式 dl.style.padding = '0 0 0 110px'; // 创建新的 div 元素 var newDiv = document.createElement('div'); newDiv.style.width = '100px'; newDiv.style.height = dl.offsetHeight + 'px'; // 使新 div 的高度与 dl.c 的高度相同 newDiv.style.float = 'left'; // 将 div 放置在左边 newDiv.style.margin = '5px 0 0 0' newDiv.style.border = '1px solid black'; // 绘制边框 // 创建 textarea 元素 var textarea = document.createElement('textarea'); textarea.style.width = '100%'; textarea.style.resize = 'none'; textarea.style.height = (dl.offsetHeight - 30) + 'px'; // 留出按钮的位置 textarea.value = savedText; // 设置 textarea 的初始值 // 创建按钮元素 var button = document.createElement('button'); button.textContent = 'Button'; button.style.width = '100%'; // 添加按钮点击事件 button.addEventListener('click', function() { // 保存 textarea 中的内容到 localStorage localStorage.setItem('textareaContent', textarea.value); updateLinkStyles(); }); // 将 textarea 和按钮添加到新 div 中 newDiv.appendChild(textarea); newDiv.appendChild(button); // 将新 div 插入到 dl.c 元素的左边 dl.parentNode.insertBefore(newDiv, dl); }); // 监听 DOM 变化 const observer = new MutationObserver(() => { updateLinkStyles(); }); // 观察整个 document.body 变化 observer.observe(document.body, { childList: true, subtree: true }); // 初次运行更新样式 updateLinkStyles(); })();