// ==UserScript== // @name Quicker-显示用户头像 // @version 1.0 // @description 在讨论区等地方显示头像 // @match https://getquicker.net/* // @grant none // @namespace https://greasyfork.org/users/1082425 // @downloadURL none // ==/UserScript== (function() { 'use strict'; function getAvatarImageSrc(uri) { var cachedData = localStorage.getItem(uri); if (cachedData) { var data = JSON.parse(cachedData); return data.src; } var xhr = new XMLHttpRequest(); xhr.open('GET', uri, false); xhr.send(); if (xhr.status === 200) { var htmlContent = xhr.responseText; var parser = new DOMParser(); var doc = parser.parseFromString(htmlContent, 'text/html'); var xpathResult = doc.evaluate('/html/body/div[1]/div/div[2]/h2/div[1]/img', doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); var avatarImage = xpathResult.singleNodeValue; if (avatarImage) { var newData = { link: uri, src: avatarImage.src }; localStorage.setItem(uri, JSON.stringify(newData)); return avatarImage.src; } } return null; } var elements = document.querySelectorAll('.avatar'); var userlinks = document.querySelectorAll('.font12 .user-link'); for (var i = 0; i < elements.length; i++) { var element = elements[i]; var userlink = userlinks[i]; var src = getAvatarImageSrc(userlink.href); if (!src) { continue; } var imgElement = document.createElement('img'); var aElement = document.createElement('a'); imgElement.src = src; imgElement.alt = 'Avatar'; imgElement.style.borderRadius = '50%'; var size = Math.min(parseInt(getComputedStyle(element).width), parseInt(getComputedStyle(element).height)); imgElement.style.width = size + 'px'; imgElement.style.height = size + 'px'; aElement.href = userlink.href; aElement.style.width = getComputedStyle(element).width; aElement.style.height = getComputedStyle(element).height; aElement.target = '_blank'; aElement.appendChild(imgElement); element.parentNode.replaceChild(aElement, element); } })();