您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
在普通模式下自动禁用并灰化游戏内的市场功能区域按钮,体验铁牛的生活吧
// ==UserScript== // @name:en [MWI]Disable Market Panel Buttons (TC Experience Plugin) // @name [银河奶牛]一键铁牛体验插件 // @namespace https://cnb.cool/shenhuanjie/skyner-cn/tamper-monkey-script/mwi-orderbook-button-disabler // @version 3.0.8 // @description:en Automatically disable and gray out the buttons in the in-game market function area in the normal mode. // @description 在普通模式下自动禁用并灰化游戏内的市场功能区域按钮,体验铁牛的生活吧 // @author shenhuanjie // @license MIT // @match https://www.milkywayidle.com/game* // @icon https://www.milkywayidle.com/favicon.svg // @grant none // @homepage http://greasyfork.icu/scripts/535665 // @supportURL http://greasyfork.icu/scripts/535665 // @run-at document-start // ==/UserScript== (function() { 'use strict'; // 配置对象,包含需要禁用按钮的面板类名、按钮白名单和SVG删除规则 const config = { panelClassNames: [ "MarketplacePanel_orderBook", "MarketplacePanel_itemSummary" ], // 按钮白名单规则:基于类名前缀的模糊匹配 buttonWhitelist: [ // 模糊匹配层级关系 "MarketplacePanel_viewAll > button", // 匹配任何类名前缀包含MarketplacePanel_viewAll的父元素下的button "MarketplacePanel_viewAll > Button_button" // 匹配特定按钮类名前缀 ], // SVG删除规则配置 svgToRemove: [ { parentSelector: "div[class*='MarketplacePanel_actionButtonText']", svgAttributes: { "aria-label": "Up Arrow" } } // 可以在此处添加更多SVG删除规则 ] }; // 生成CSS选择器的函数 function generateCSS(classNames) { // 生成基本选择器 const baseSelectors = classNames.map(className => `div[class*="${className}"] button` ).join(',\n '); // 生成白名单选择器(基于类名前缀模糊匹配) const whitelistSelectors = config.buttonWhitelist.map(rule => { const parts = rule.split(/\s*>\s*/).map(part => part.trim()); // 处理层级选择器规则 if (parts.length > 1) { const parentClass = parts[0]; const childElement = parts[1]; // 如果是特定按钮类名前缀匹配 if (childElement.includes('_')) { return `[class*="${parentClass}"] > [class*="${childElement}"]`; } // 普通元素匹配 return `[class*="${parentClass}"] > ${childElement}`; } // 处理简单按钮类名前缀匹配 return `[class*="${parts[0]}"]`; }).join(',\n '); // 生成hover、active和focus状态的选择器 const stateSelectors = classNames.flatMap(className => [ `div[class*="${className}"] button:hover`, `div[class*="${className}"] button:active`, `div[class*="${className}"] button:focus` ]).join(',\n '); // 生成SVG删除规则 const svgRules = config.svgToRemove.map(rule => { const parentSelector = rule.parentSelector; const svgSelector = Object.entries(rule.svgAttributes) .map(([attr, value]) => `[${attr}="${value}"]`) .join(''); return `${parentSelector} svg${svgSelector}`; }).join(',\n '); // 返回完整的CSS return ` /* 移除配置的SVG元素 */ ${svgRules} { display: none !important; } /* 样式规则:应用于所有匹配的按钮(包括白名单中的按钮) */ ${baseSelectors} { opacity: 0.5 !important; background-color: #e0e0e0 !important; color: #888 !important; border-color: #ccc !important; filter: grayscale(100%) !important; transition: all 0.3s ease !important; cursor: not-allowed !important; } /* 交互规则:只应用于非白名单的按钮 */ ${baseSelectors}:not(${whitelistSelectors}) { cursor: not-allowed !important; pointer-events: none !important; } /* 确保禁用状态不会被其他样式覆盖 */ ${stateSelectors} { opacity: 0.5 !important; background-color: #e0e0e0 !important; color: #888 !important; border-color: #ccc !important; filter: grayscale(100%) !important; box-shadow: none !important; transform: none !important; } /* 白名单按钮的交互状态 */ ${whitelistSelectors}, ${whitelistSelectors}:hover, ${whitelistSelectors}:active, ${whitelistSelectors}:focus { cursor: pointer !important; pointer-events: auto !important; } /* 特殊处理层级选择器规则的交互状态 */ ${config.buttonWhitelist .filter(rule => rule.includes('>')) .map(rule => { const parts = rule.split(/\s*>\s*/); const parentSelector = parts[0].includes('__') ? `[class*="${parts[0]}"]` : `.${parts[0]}`; const childSelector = parts[1]; return `${parentSelector} > ${childSelector}:hover, ${parentSelector} > ${childSelector}:active, ${parentSelector} > ${childSelector}:focus`; }) .join(',\n ')} { cursor: pointer !important; pointer-events: auto !important; }`; } // 添加纯CSS实现 const style = document.createElement('style'); style.textContent = generateCSS(config.panelClassNames); document.head.appendChild(style); console.log(`[MarketplacePanelDisabler] 已应用CSS规则: 面板类名: ${config.panelClassNames.join(', ')} 白名单按钮: ${config.buttonWhitelist.join(', ')} SVG删除规则: ${config.svgToRemove.map(rule => `${rule.parentSelector} svg[${Object.entries(rule.svgAttributes).map(([attr, value]) => `${attr}="${value}"`).join(' ')}]` ).join(', ')} 特殊规则: "MarketplacePanel_viewAll"类名下的按钮保持正常样式和点击功能`); })();