您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a button to edit text content of any HTML element (Toggle with Ctrl+Shift+E)
- // ==UserScript==
- // @name EazyHTMLTextEdit
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description Adds a button to edit text content of any HTML element (Toggle with Ctrl+Shift+E)
- // @author 404
- // @match *://*/*
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Create and style the toggle button
- const toggleButton = document.createElement('button');
- toggleButton.textContent = '✏️ Edit Mode';
- toggleButton.style.cssText = `
- position: fixed;
- top: 10px;
- right: 10px;
- z-index: 10000;
- padding: 8px 16px;
- background-color: #4CAF50;
- color: white;
- border: none;
- border-radius: 4px;
- cursor: pointer;
- font-family: Arial, sans-serif;
- transition: opacity 0.3s ease;
- `;
- // Add button to page
- document.body.appendChild(toggleButton);
- let isEditMode = false;
- let selectedElement = null;
- let originalBackground = '';
- let isButtonVisible = false;
- // Set initial button state
- toggleButton.style.opacity = '0';
- toggleButton.style.pointerEvents = 'none';
- // Toggle button visibility with keyboard shortcut (Ctrl+Shift+E)
- document.addEventListener('keydown', (e) => {
- if (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'e') {
- e.preventDefault();
- isButtonVisible = !isButtonVisible;
- toggleButton.style.opacity = isButtonVisible ? '1' : '0';
- toggleButton.style.pointerEvents = isButtonVisible ? 'auto' : 'none';
- }
- });
- // Toggle edit mode
- toggleButton.addEventListener('click', () => {
- isEditMode = !isEditMode;
- toggleButton.style.backgroundColor = isEditMode ? '#f44336' : '#4CAF50';
- toggleButton.textContent = isEditMode ? '✏️ Exit Edit Mode' : '✏️ Edit Mode';
- if (!isEditMode && selectedElement) {
- selectedElement.style.backgroundColor = originalBackground;
- selectedElement = null;
- }
- });
- // Handle mouseover highlighting
- document.addEventListener('mouseover', (e) => {
- if (!isEditMode) return;
- if (e.target !== toggleButton && e.target !== selectedElement) {
- e.target.style.outline = '2px solid #4CAF50';
- e.stopPropagation();
- }
- });
- // Remove highlight on mouseout
- document.addEventListener('mouseout', (e) => {
- if (!isEditMode) return;
- if (e.target !== toggleButton && e.target !== selectedElement) {
- e.target.style.outline = '';
- e.stopPropagation();
- }
- });
- // Handle element selection and text editing
- document.addEventListener('click', (e) => {
- if (!isEditMode || e.target === toggleButton) return;
- e.preventDefault();
- e.stopPropagation();
- // Reset previous selection if exists
- if (selectedElement) {
- selectedElement.style.backgroundColor = originalBackground;
- }
- selectedElement = e.target;
- originalBackground = getComputedStyle(selectedElement).backgroundColor;
- selectedElement.style.backgroundColor = '#fff8e1';
- // Create input for editing
- const originalText = selectedElement.textContent;
- const input = document.createElement('input');
- input.type = 'text';
- input.value = originalText;
- input.style.cssText = `
- width: ${Math.max(selectedElement.offsetWidth, 100)}px;
- padding: 8px;
- border: 2px solid #4CAF50;
- border-radius: 4px;
- background-color: #ffffff;
- color: #000000;
- font-size: 16px;
- box-shadow: 0 0 10px rgba(0,0,0,0.1);
- font-family: Arial, sans-serif;
- margin: 2px;
- z-index: 10001;
- position: relative;
- `;
- // Replace element content with input
- selectedElement.textContent = '';
- selectedElement.appendChild(input);
- input.focus();
- // Handle input completion
- const finishEditing = () => {
- const newText = input.value;
- selectedElement.removeChild(input);
- selectedElement.textContent = newText;
- selectedElement.style.backgroundColor = originalBackground;
- selectedElement = null;
- };
- input.addEventListener('blur', finishEditing);
- input.addEventListener('keypress', (e) => {
- if (e.key === 'Enter') {
- finishEditing();
- }
- });
- });
- })();