您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在今日数独网站上高亮用户填入的数字
// ==UserScript== // @name 今日数独数字高亮 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 在今日数独网站上高亮用户填入的数字 // @author coccvo // @match https://cn.sudoku.today/*.html // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABlklEQVQ4jV3TO2sUYRQG4GfHmV3RQNa4ixdEBYmJimCjpVUk4AUVRQQt/CU2dlrb+AdMICLeSivBTrGyEBQLFRTMinjdTVgL38ExBz6YOd+cc97LmRbu4D3eYBPaOI8H+OZvTOAUlrCSM4UdkixwDpdT8BAd/6KDe/6PSSwWGGEXLmAP1gVFF2VOFxU25L5Mg1aRxCdcwWesBuL3Btz6+cea+3EZ+PuTXMY0NmIm7y1sjg6zGIbCVg2IJzN9iLPo4XjojVKwLUKupOkkeiV+43og1XEAr3AsTjzCM9xofNPGpSLdeg00E+jjCR5n0plwn4pmJ3AfCwXGmdIU7CsO4lCavsvU5Vh6Nchv1iLuxcd8tD62dbNgL/E6dHbjJwZ4gcNl/J3Hl9Apsxc7I2wbR6P6fGg9xTUswGJsa8bdNK6jbGzi9oi5BUu1iP0UVBGxE2HrXD9IqlAeRrdxGXUHDb9H+LUmN0hu1HBjBkW903P4kO6d/BNzUV0KpnEEbyPmaVQtXMS+dC4anFdjcR1VhL6NW3iO2T+OVmYHsHGmcAAAAABJRU5ErkJggg== // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; if(document.getElementById('sudoku-highlighter-container')) return; const style = document.createElement('style'); style.textContent = ` #sudoku-highlighter-container { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); background: rgba(255,255,255,0.9); padding: 8px; border-radius: 6px; box-shadow: 0 2px 10px rgba(0,0,0,0.2); z-index: 9999; cursor: move; display: flex; gap: 4px; user-select: none; -webkit-user-select: none; } #sudoku-highlighter-container button { width: 30px; height: 30px; border: 1px solid #ccc; border-radius: 4px; background: white; cursor: pointer; user-select: none; -webkit-user-select: none; } #sudoku-highlighter-container button.active { background: #ffeb3b; } .highlight-number { background: #ffeb3b !important; border: 2px solid #f44336 !important; } `; document.head.appendChild(style); let isDragging = false; let offsetX, offsetY; const toolbar = document.createElement('div'); toolbar.id = 'sudoku-highlighter-container'; for(let i=0; i<=9; i++){ const btn = document.createElement('button'); btn.textContent = i; btn.onclick = function() { document.querySelectorAll('.pcell').forEach(cell => { cell.classList.remove('highlight-number'); if(cell.value.includes(i.toString())) { cell.classList.add('highlight-number'); } }); toolbar.querySelectorAll('button').forEach(b => b.classList.remove('active')); this.classList.add('active'); }; toolbar.appendChild(btn); } toolbar.addEventListener('mousedown', function(e) { if(e.target.tagName === 'BUTTON') return; isDragging = true; offsetX = e.clientX - toolbar.offsetLeft; offsetY = e.clientY - toolbar.offsetTop; e.preventDefault(); }); document.addEventListener('mousemove', function(e) { if(!isDragging) return; toolbar.style.left = (e.clientX - offsetX) + 'px'; toolbar.style.top = (e.clientY - offsetY) + 'px'; toolbar.style.transform = 'none'; e.preventDefault(); }); document.addEventListener('mouseup', () => isDragging = false); document.body.appendChild(toolbar); })();