您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add an information overview to each profile pic on the home page.
当前为
// ==UserScript== // @name CGLA Overview // @namespace Violentmonkey Scripts // @match https://www.candygirlla.com/ // @grant none // @version 1.1 // @author - // @description Add an information overview to each profile pic on the home page. // @license MIT // ==/UserScript== async function fetchProfile(url) { let res = await fetch(url) let text = await res.text() let parser = new DOMParser() let doc = parser.parseFromString(text, 'text/html') let els = doc.querySelectorAll('main div[data-testid=richTextElement]') let profile = els[1].textContent return profile.replace(/\n\n/g, "\n") } function addProfileOverlay(a, content) { let pre = document.createElement('PRE') pre.className = 'overlay' pre.innerHTML = content a.appendChild(pre) } async function fetchAll() { let as = document.querySelectorAll('a[data-testid=linkElement][target=_self]') for (let i = 0; i < as.length; i++) { let a = as[i] let url = new URL(a.href) if (url.pathname === '/') continue let profile = await fetchProfile(a.href) addProfileOverlay(a, profile) } } let css = ` #SITE_HEADER { opacity: 85%; } pre.overlay { position: absolute; bottom: 0; left: 0; margin: 1.5em; padding: 0.5em; border-radius: 8px; font-size: 11px; color: white; background: rgba(69, 40, 50, 0.75); } ` let style = document.createElement("style"); style.type = "text/css"; style.appendChild(document.createTextNode(css)); document.head.appendChild(style); //for debugging //unsafeWindow.fetchProfile = fetchProfile //unsafeWindow.addProfileOverlay = addProfileOverlay //unsafeWindow.fetchAll = fetchAll const wait = 3000 setTimeout(fetchAll, wait) window.addEventListener('popstate', () => { if (location.pathname === '/') { const pres = document.querySelectorAll('pre.overlay') if (pres.length === 0) { setTimeout(fetchAll, wait) } } })