您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Unblur and allow text selection in blurred fields and add links to characters, themes, and symbols
// ==UserScript== // @name LitCharts unblur, allow selection, add links // @namespace Violentmonkey Scripts // @match https://www.litcharts.com/* // @grant none // @version 1.2 // @author CyrilSLi // @description Unblur and allow text selection in blurred fields and add links to characters, themes, and symbols // @license MIT // ==/UserScript== const classes = ["blurred", "blurred-text", "blur"]; const unblurRetry = setInterval(removeBlur, 10); const styles = [ "-webkit-touch-callout", "-webkit-user-select", "-khtml-user-select", "-moz-user-select", "-ms-user-select", "user-select" ]; const styleStr = "-webkit-touch-callout:default !important; -webkit-user-select:auto !important; -khtml-user-select:auto !important; -moz-user-select:auto !important; -ms-user-select:auto !important; user-select:auto !important;"; var charSymbolLinks = {}; var themeLinks = {}; function removeBlur() { var allElements = []; for (var i = 0; i < classes.length; i++) { var blurred = document.getElementsByClassName(classes[i]); allElements.push(...blurred); for (var j = 0; j < blurred.length; j++) { blurred[j].classList.remove(classes[i]); } } if (!allElements.length) { clearInterval(unblurRetry); console.log("Finished unblurring"); allowSelect(); } } function allowSelect() { var walker = document.createTreeWalker( document.documentElement, NodeFilter.SHOW_ELEMENT, el => { for (var i = 0; i < styles.length; i++) { if (getComputedStyle(el)[styles[i]] == "none") { return NodeFilter.FILTER_ACCEPT; } } return NodeFilter.FILTER_SKIP; } ); var els = []; while (walker.nextNode()) { walker.currentNode.setAttribute("style", styleStr); els.push(walker.currentNode); } for (var i = 0; i < els.length; i++) { els[i].parentNode.replaceChild(els[i].cloneNode(true), els[i]); } console.log("Allowed selection"); addLinks(); } function addLinks() { // intentional misspelling of symbol as the website does the same [...document.querySelectorAll(".dropdown.characters > ul > li > a, .dropdown.simbols > ul > li > a")].forEach((el) => { charSymName = el.textContent.trim(); if (charSymName.toLowerCase() != "all characters" && charSymName.toLowerCase() != "all symbols") { charSymbolLinks[charSymName] = el.href; } }); [...document.querySelectorAll(".dropdown.themes > ul > li > a")].forEach((el) => { themeName = el.textContent.trim(); if (themeName.toLowerCase() != "all themes") { themeLinks[themeName] = el.href; } }); [...document.querySelectorAll("span.faux-link")].forEach((el) => { charSymName = el.textContent.trim(); if (charSymName in charSymbolLinks) { linkEl = document.createElement("a"); linkEl.textContent = el.textContent; linkEl.href = charSymbolLinks[charSymName]; el.replaceWith(linkEl); } }); [...document.querySelectorAll("div.theme-icon.medium")].forEach((el) => { el.parentNode.innerHTML = el.parentNode.innerHTML.trim().replace(/^<div/, "<a").replace(/\/div>$/, "/a>"); }); [...document.querySelectorAll("a.theme-icon.medium > img")].forEach((el) => { themeLink = themeLinks[Object.keys(themeLinks).find((theme) => el.alt.includes(theme))]; if (themeLink != undefined) { el.parentNode.href = themeLink; } }); console.log("Added links"); removeAds(); } function removeAds() { ["analysis-dialog", "analysis-text-dialog", "stretch-left-promo"].forEach((cls) => { [...document.getElementsByClassName(cls)].forEach((el) => el.remove()); }); console.log("Removed A+ Ads"); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址