您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A movable, resizable menu on a webpage.
当前为
// ==UserScript== // @name Movable & Resizable Menu Script // @namespace http://tampermonkey.net/ // @version 0.5 // @description A movable, resizable menu on a webpage. // @author You // @match *://*/* // @grant none // @license MrSticker23 // ==/UserScript== (function() { 'use strict'; // Helper function to get React's stateNode function getStateNode() { return Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")); })())[1].children[0]._owner.stateNode; } // Cheat definitions const Cheats = { global: { name: "Global", img: "https://media.blooket.com/image/upload/v1661496291/Media/uiTest/Games_Played_2.svg", cheats: [ { name: "Auto Answer", description: "Toggles auto answer on", type: "toggle", enabled: false, data: null, run: function () { if (!this.enabled) { this.enabled = true; this.data = setInterval(() => { const stateNode = getStateNode(); const Question = stateNode.state.question || stateNode.props.client.question; if (stateNode.state.question.qType != "typing") { if (stateNode.state.stage != "feedback" && !stateNode.state.feedback) { let ind; for (ind = 0; ind < Question.answers.length; ind++) { let found = false; for (let j = 0; j < Question.correctAnswers.length; j++) if (Question.answers[ind] == Question.correctAnswers[j]) { found = true; break; } if (found) break; } document.querySelectorAll("[class*='answerContainer']")[ind].click(); } else document.querySelector("[class*='feedback'], [id*='feedback']").firstChild.click(); } else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(Question.answers[0]); }, 50); } else { this.enabled = false; clearInterval(this.data); this.data = null; } } }, ] } }; // Create menu container const menu = document.createElement('div'); menu.style.position = 'fixed'; menu.style.top = '100px'; menu.style.left = '100px'; menu.style.width = '500px'; menu.style.height = '400px'; menu.style.backgroundColor = 'rgba(0, 0, 0, 0.9)'; menu.style.color = 'white'; menu.style.display = 'flex'; menu.style.borderRadius = '10px'; menu.style.zIndex = '1000'; menu.style.cursor = 'move'; // Create sidebar const sidebar = document.createElement('div'); sidebar.style.width = '120px'; sidebar.style.backgroundColor = '#333'; sidebar.style.display = 'flex'; sidebar.style.flexDirection = 'column'; sidebar.style.padding = '10px'; sidebar.style.borderRight = '2px solid #555'; // Create content container (main menu area) const contentContainer = document.createElement('div'); contentContainer.style.flexGrow = '1'; contentContainer.style.padding = '20px'; // Sections for the content area const section1 = document.createElement('div'); section1.innerHTML = '<h3>Section 1</h3><p>This is the content for section 1.</p>'; const section2 = document.createElement('div'); section2.innerHTML = '<h3>Section 2</h3><p>This is the content for section 2.</p>'; const sectionCheats = document.createElement('div'); sectionCheats.innerHTML = '<h3>Cheats</h3><p>Use cheats like Auto Answer below.</p>'; // Auto Answer toggle button const autoAnswerButton = document.createElement('button'); autoAnswerButton.textContent = 'Toggle Auto Answer'; autoAnswerButton.onclick = function() { Cheats.global.cheats[0].run(); alert(`Auto Answer is now ${Cheats.global.cheats[0].enabled ? 'enabled' : 'disabled'}.`); }; sectionCheats.appendChild(autoAnswerButton); // Display the first section initially contentContainer.appendChild(section1); // Function to switch sections function showSection(section) { contentContainer.innerHTML = ''; contentContainer.appendChild(section); } // Sidebar buttons const btn1 = document.createElement('button'); btn1.textContent = 'Section 1'; btn1.style.marginBottom = '10px'; btn1.onclick = function() { showSection(section1); }; sidebar.appendChild(btn1); const btn2 = document.createElement('button'); btn2.textContent = 'Section 2'; btn2.style.marginBottom = '10px'; btn2.onclick = function() { showSection(section2); }; sidebar.appendChild(btn2); const btnCheats = document.createElement('button'); btnCheats.textContent = 'Cheats'; btnCheats.onclick = function() { showSection(sectionCheats); }; sidebar.appendChild(btnCheats); // Append sidebar and content container to the menu menu.appendChild(sidebar); menu.appendChild(contentContainer); // Make the menu draggable let isDragging = false; let offsetX, offsetY; menu.addEventListener('mousedown', function(e) { isDragging = true; offsetX = e.clientX - parseInt(menu.style.left); offsetY = e.clientY - parseInt(menu.style.top); menu.style.cursor = 'grabbing'; }); document.addEventListener('mousemove', function(e) { if (isDragging) { menu.style.left = (e.clientX - offsetX) + 'px'; menu.style.top = (e.clientY - offsetY) + 'px'; } }); document.addEventListener('mouseup', function() { isDragging = false; menu.style.cursor = 'move'; }); // Append the menu to the body document.body.appendChild(menu); })();