您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Warps and messes around with the HTML of a site, with a protected GUI at the top of the page.
// ==UserScript== // @name HTML Warper // @namespace http://tampermonkey.net/ // @version 1.3 // @description Warps and messes around with the HTML of a site, with a protected GUI at the top of the page. // @author cybuds // @match *://*/* // @license MIT // @grant none // ==/UserScript== (function () { 'use strict'; let guiContainer = null; let reopenButton = null; const originalState = new Map(); // Helper to create the GUI const createGUI = () => { if (guiContainer) return; // Main GUI container guiContainer = document.createElement('div'); guiContainer.id = 'htmlWarperGui'; guiContainer.style.position = 'fixed'; guiContainer.style.top = '0'; guiContainer.style.left = '0'; guiContainer.style.width = '100%'; guiContainer.style.padding = '10px'; guiContainer.style.backgroundColor = 'rgba(0, 0, 0, 0.9)'; guiContainer.style.color = 'white'; guiContainer.style.borderBottom = '2px solid white'; guiContainer.style.zIndex = '99999'; guiContainer.style.fontFamily = 'Arial, sans-serif'; guiContainer.innerHTML = ` <div style="display: flex; justify-content: space-between; align-items: center;"> <h3 style="margin: 0; font-size: 16px;">HTML Warper</h3> <button id="closeGui">Close GUI</button> </div> <div style="margin-top: 10px;"> <button id="randomizeText">Randomize Text</button> <button id="rotateElements">Rotate Elements</button> <button id="changeColors">Change Colors</button> <button id="blurText">Blur Text</button> <button id="enlargeElements">Enlarge Elements</button> <button id="hideRandom">Hide Random Elements</button> <button id="undoChanges">Undo Changes</button> </div> `; document.body.appendChild(guiContainer); // Event listeners for GUI buttons document.getElementById('randomizeText').addEventListener('click', randomizeText); document.getElementById('rotateElements').addEventListener('click', rotateElements); document.getElementById('changeColors').addEventListener('click', changeColors); document.getElementById('blurText').addEventListener('click', blurText); document.getElementById('enlargeElements').addEventListener('click', enlargeElements); document.getElementById('hideRandom').addEventListener('click', hideRandomElements); document.getElementById('undoChanges').addEventListener('click', undoChanges); // Close GUI document.getElementById('closeGui').addEventListener('click', () => { guiContainer.style.display = 'none'; reopenButton.style.display = 'block'; }); }; // Create reopen button const createReopenButton = () => { reopenButton = document.createElement('button'); reopenButton.innerText = 'Reopen GUI'; reopenButton.style.position = 'fixed'; reopenButton.style.bottom = '10px'; reopenButton.style.right = '10px'; reopenButton.style.padding = '10px'; reopenButton.style.backgroundColor = 'rgba(0, 0, 0, 0.8)'; reopenButton.style.color = 'white'; reopenButton.style.border = '1px solid white'; reopenButton.style.borderRadius = '5px'; reopenButton.style.zIndex = '99999'; reopenButton.style.fontFamily = 'Arial, sans-serif'; reopenButton.style.display = 'none'; document.body.appendChild(reopenButton); reopenButton.addEventListener('click', () => { guiContainer.style.display = 'block'; reopenButton.style.display = 'none'; }); }; // Functions for the effects (excluding the GUI) const randomizeText = () => { document.querySelectorAll('*:not(#htmlWarperGui):not(#htmlWarperGui *)').forEach((el) => { if (!originalState.has(el)) originalState.set(el, el.innerText); if (el.children.length === 0) el.innerText = Math.random().toString(36).substring(7); }); }; const rotateElements = () => { document.querySelectorAll('*:not(#htmlWarperGui):not(#htmlWarperGui *)').forEach((el) => { if (!originalState.has(el)) originalState.set(el, el.style.transform); el.style.transform = `rotate(${Math.random() * 360}deg)`; }); }; const changeColors = () => { document.querySelectorAll('*:not(#htmlWarperGui):not(#htmlWarperGui *)').forEach((el) => { if (!originalState.has(el)) originalState.set(el, el.style.backgroundColor); el.style.backgroundColor = `#${Math.floor(Math.random() * 16777215).toString(16)}`; }); }; const blurText = () => { document.querySelectorAll('*:not(#htmlWarperGui):not(#htmlWarperGui *)').forEach((el) => { if (!originalState.has(el)) originalState.set(el, el.style.filter); el.style.filter = 'blur(2px)'; }); }; const enlargeElements = () => { document.querySelectorAll('*:not(#htmlWarperGui):not(#htmlWarperGui *)').forEach((el) => { if (!originalState.has(el)) originalState.set(el, el.style.transform); el.style.transform = 'scale(1.5)'; }); }; const hideRandomElements = () => { document.querySelectorAll('*:not(#htmlWarperGui):not(#htmlWarperGui *)').forEach((el) => { if (!originalState.has(el)) originalState.set(el, el.style.display); if (Math.random() > 0.7) el.style.display = 'none'; }); }; const undoChanges = () => { originalState.forEach((value, element) => { element.innerText = value || ''; element.style.transform = ''; element.style.backgroundColor = ''; element.style.filter = ''; element.style.display = ''; }); originalState.clear(); }; // Initialize GUI and reopen button createGUI(); createReopenButton(); })();