您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在每个脚本名称后面添加脚本评分
当前为
- // ==UserScript==
- // @name Greasyfork 脚本显示评分
- // @namespace https://greasyfork.org/zh-CN/users/1169082-%E4%BA%BA%E6%B0%91%E7%9A%84%E5%8B%A4%E5%8A%A1%E5%91%98
- // @version 1.0
- // @description 在每个脚本名称后面添加脚本评分
- // @author 人民的勤务员
- // @match https://greasyfork.org/*
- // @license MIT
- // @grant none
- // @icon https://www.google.com/s2/favicons?domain=greasyfork.org
- // ==/UserScript==
- (function() {
- 'use strict';
- // 检测脚本列表的出现,并自动插入评分
- function observeScriptList() {
- const scriptList = document.querySelector('.script-list');
- if (scriptList) {
- // 插入评分
- insertRatings(scriptList);
- // 配置观察器
- const observer = new MutationObserver(function(mutationsList, observer) {
- for (let mutation of mutationsList) {
- if (mutation.type === 'childList') {
- for (let node of mutation.addedNodes) {
- // 检查是否为脚本列表项
- if (node.nodeType === Node.ELEMENT_NODE && node.matches('li[data-script-id]')) {
- insertRating(node);
- }
- }
- }
- }
- });
- // 开始观察脚本列表的变化
- observer.observe(scriptList, { childList: true, subtree: true });
- }
- }
- // 插入评分
- function insertRating(scriptBlock) {
- const ratingElement = scriptBlock.querySelector('dd.script-list-ratings');
- if (ratingElement) {
- const rating = ratingElement.getAttribute('data-rating-score');
- const ratingDisplay = document.createElement('span');
- ratingDisplay.textContent = rating.replace(/[^\d.]/g, '');
- ratingDisplay.style.marginLeft = '30px';
- ratingDisplay.style.fontSize = '1em';
- ratingDisplay.style.color = '#ff8c00';
- ratingDisplay.style.fontWeight = 'bold';
- const titleElement = scriptBlock.querySelector('.script-link');
- if (titleElement) {
- titleElement.insertAdjacentElement('afterend', ratingDisplay);
- }
- }
- }
- // 插入评分到当前页面的脚本列表中
- function insertRatings(scriptList) {
- const scriptBlocks = scriptList.querySelectorAll('li[data-script-id]');
- scriptBlocks.forEach(insertRating);
- }
- // 开始观察当前页面脚本列表的出现
- observeScriptList();
- // 观察 body 元素以检测页面加载了下一页
- const bodyObserver = new MutationObserver(function(mutationsList, observer) {
- mutationsList.forEach(mutation => {
- mutation.addedNodes.forEach(node => {
- if (node.nodeType === Node.ELEMENT_NODE && node.matches('.script-list')) {
- // 页面加载了下一页,自动插入评分
- insertRatings(node);
- }
- });
- });
- });
- // 开始观察 body 元素的子节点变化
- bodyObserver.observe(document.body, { childList: true, subtree: true });
- })();