您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在 TechPowerUp 的 VGA BIOS 收藏表格中添加包含功率限制详细信息的额外列,并输出调试信息
// ==UserScript== // @name TechPowerUp VGA BIOS 收藏增强器 // @namespace http://tampermonkey.net/Owwkmidream // @version 1.1 // @description 在 TechPowerUp 的 VGA BIOS 收藏表格中添加包含功率限制详细信息的额外列,并输出调试信息 // @author Owwkmidream // @match https://www.techpowerup.com/vgabios/?* // @grant none // @license GNU GPLv3 // ==/UserScript== (function() { 'use strict'; // 函数用于向表头添加新列 function addNewColumnsToHeader(table) { const headerRow = table.querySelector('thead > tr'); const newHeaders = ['目标 (W)', '限制 (W)', '调整范围']; newHeaders.forEach(headerText => { const th = document.createElement('th'); th.textContent = headerText; headerRow.appendChild(th); }); } // 函数用于向每行添加带有数据的新列 function addNewColumnsToRows(table, data) { const rows = table.querySelectorAll('tbody > tr'); rows.forEach((row, index) => { const detailLink = row.querySelector('a[href*="/vgabios/"]'); if (detailLink && data[detailLink.href]) { const { target, limit, adjRangeMin, adjRangeMax } = data[detailLink.href]; const newCellsData = [target, limit, `${adjRangeMin}, ${adjRangeMax}`]; newCellsData.forEach(cellText => { const td = document.createElement('td'); td.textContent = cellText; row.appendChild(td); }); } else { const newCellsData = ['N/A', 'N/A', 'N/A']; newCellsData.forEach(cellText => { const td = document.createElement('td'); td.textContent = cellText; row.appendChild(td); }); } }); } // 函数用于获取并处理每个详细页面 async function fetchAndProcessDetailsPage(url) { const response = await fetch(url); const pageText = await response.text(); const powerLimitRegex = /Board power limit\s+Target: ([\d.]+) W\s+Limit: ([\d.]+) W\s+Adj. Range: ([^%]+%)\s*,\s*([^%]+%)/; const matches = pageText.match(powerLimitRegex); if (matches && matches.length === 5) { return { target: matches[1], limit: matches[2], adjRangeMin: matches[3], adjRangeMax: matches[4] }; } return null; } // 增强集合页面的主要函数 async function enhanceCollectionPage() { const collectionTable = document.querySelector('.bioslist'); if (!collectionTable) { return; } addNewColumnsToHeader(collectionTable); const detailLinks = [...collectionTable.querySelectorAll('a[href*="/vgabios/"]')]; const powerLimitDetails = {}; // 使用 Promise.all 异步获取详细信息 const fetchPromises = detailLinks.map(link => fetchAndProcessDetailsPage(link.href)); const detailsResults = await Promise.all(fetchPromises); detailsResults.forEach((details, index) => { if (details) { powerLimitDetails[detailLinks[index].href] = details; } }); addNewColumnsToRows(collectionTable, powerLimitDetails); } // 创建一个新的按钮并添加到表单中 const runScriptButton = document.createElement('button'); runScriptButton.textContent = 'Run Script'; runScriptButton.type = 'button'; const form = document.querySelector('form[action="/vgabios/"]'); form.appendChild(runScriptButton); // 当按钮被点击时,运行主函数 runScriptButton.addEventListener('click', enhanceCollectionPage); })();