您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Create an accurate GUI replica with draggable features and dynamic buttons
// ==UserScript== // @name Oculus WebExcutor (prototype) // @namespace http://tampermonkey.net/ // @version 0.1 // @description Create an accurate GUI replica with draggable features and dynamic buttons // @match *://*/* // @grant GM_addStyle // ==/UserScript== (function() { 'use strict'; // Add CSS for the GUI GM_addStyle(` #custom-gui { position: fixed; top: 20px; left: 20px; width: 400px; background-color: #f0f0f0; border: 1px solid #dcdcdc; box-shadow: 0 0 10px rgba(0,0,0,0.5); border-radius: 15px; z-index: 9999; display: none; transform: translateX(-100%); transition: transform 0.5s ease, box-shadow 0.3s ease; } #custom-gui.show { transform: translateX(0); } #header { background-color: #333333; color: #ffffff; padding: 10px; border-top-left-radius: 15px; border-top-right-radius: 15px; cursor: move; display: flex; justify-content: space-between; align-items: center; } #header .btn { background-color: #ff0000; color: #ffffff; border: none; border-radius: 5px; padding: 5px 10px; cursor: pointer; } #header .btn.open { background-color: #00ff00; } #content { padding: 10px; } #text-box { width: calc(100% - 22px); height: 30px; border: 1px solid #BFBFBF; border-radius: 5px; margin-bottom: 10px; padding: 5px; box-sizing: border-box; } #inject-btn { background-color: #00ff00; color: #ffffff; border: none; border-radius: 5px; padding: 5px 10px; cursor: pointer; margin-right: 10px; } #inject-btn.red { background-color: #ff0000; } #clear-btn { background-color: #0000ff; color: #ffffff; border: none; border-radius: 5px; padding: 5px 10px; cursor: pointer; } #execute-btn { background-color: #00ffff; color: #ffffff; border: none; border-radius: 5px; padding: 5px 10px; cursor: pointer; } #loading-bar { position: fixed; top: 0; left: 0; width: 0; height: 5px; background-color: #cccccc; z-index: 9998; transition: width 4s ease; } `); // Create GUI elements const gui = document.createElement('div'); gui.id = 'custom-gui'; gui.innerHTML = ` <div id="header"> <span>Custom GUI</span> <button class="btn open" id="toggle-btn">Open</button> </div> <div id="content"> <input type="text" id="text-box" placeholder="Injection text here"> <button id="inject-btn" class="btn">Inject</button> <button id="clear-btn" class="btn">Clear</button> <button id="execute-btn" class="btn">Execute</button> </div> `; document.body.appendChild(gui); // Create loading bar const loadingBar = document.createElement('div'); loadingBar.id = 'loading-bar'; document.body.appendChild(loadingBar); // Initialize draggable functionality let isDragging = false; let offsetX = 0; let offsetY = 0; const header = document.getElementById('header'); header.addEventListener('mousedown', (e) => { isDragging = true; offsetX = e.clientX - gui.getBoundingClientRect().left; offsetY = e.clientY - gui.getBoundingClientRect().top; document.addEventListener('mousemove', onMouseMove); document.addEventListener('mouseup', onMouseUp); }); function onMouseMove(e) { if (isDragging) { gui.style.left = `${e.clientX - offsetX}px`; gui.style.top = `${e.clientY - offsetY}px`; } } function onMouseUp() { isDragging = false; document.removeEventListener('mousemove', onMouseMove); document.removeEventListener('mouseup', onMouseUp); } // Loading bar animation setTimeout(() => { loadingBar.style.width = '100%'; setTimeout(() => { loadingBar.style.display = 'none'; gui.classList.add('show'); }, 4000); }, 0); // Button functionalities const injectBtn = document.getElementById('inject-btn'); const clearBtn = document.getElementById('clear-btn'); const executeBtn = document.getElementById('execute-btn'); const toggleBtn = document.getElementById('toggle-btn'); const textBox = document.getElementById('text-box'); injectBtn.addEventListener('click', () => { injectBtn.classList.toggle('red'); }); clearBtn.addEventListener('click', () => { textBox.value = ''; }); executeBtn.addEventListener('click', () => { alert('Execute button clicked'); }); toggleBtn.addEventListener('click', () => { gui.classList.toggle('show'); toggleBtn.classList.toggle('open'); toggleBtn.textContent = gui.classList.contains('show') ? 'Close' : 'Open'; }); })();