您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Mantiene los botones siempre habilitados
// ==UserScript== // @name Drawaria Keep Buttons Enabled // @namespace http://tampermonkey.net/ // @version 11-1-2025 // @description Mantiene los botones siempre habilitados // @author YouTube // @match https://drawaria.online/* // @icon https://www.google.com/s2/favicons?sz=64&domain=drawaria.online // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Función para eliminar el atributo 'required' de los campos del formulario function removeRequiredAttributes() { // Seleccionar el campo de selección (dropdown) const reportReasonSelect = document.getElementById('report-reason'); if (reportReasonSelect) { reportReasonSelect.removeAttribute('required'); } // Seleccionar el campo de texto (textarea) const reportCommentsTextarea = document.getElementById('report-comments'); if (reportCommentsTextarea) { reportCommentsTextarea.removeAttribute('required'); } } // Función para mantener los botones habilitados function keepButtonsEnabled() { const buttons = document.querySelectorAll( 'button.btn.btn-primary.btn-block.pgdrawbutton,' + 'button.btn.btn-primary.btn-block.spawnavatarbutton,' + 'button#sendtogallery,' + 'button.btn.btn-light.btn-block.btn-sm.kickbutton,' + 'button.btn.btn-light.btn-block.btn-sm.hidedrawing,' + 'button.btn.btn-light.btn-block.btn-sm.mutebutton,' + 'button.btn.btn-light.btn-block.btn-sm.reportbutton,' + 'button#roomlist-refresh' // Added the new button ); buttons.forEach(button => { button.disabled = false; button.removeAttribute('disabled'); button.style.pointerEvents = 'auto'; // Asegura que el botón sea clickeable }); } // Función para mantener el popover-body visible function keepPopoverBodyVisible() { const popoverBody = document.querySelector('.popover-body'); if (popoverBody) { popoverBody.style.display = 'block'; } } // Ejecutar las funciones inicialmente keepButtonsEnabled(); keepPopoverBodyVisible(); // Observar cambios en el DOM para mantener los botones habilitados y el popover-body visible const observer = new MutationObserver(() => { keepButtonsEnabled(); keepPopoverBodyVisible(); }); observer.observe(document.body, { childList: true, subtree: true, attributes: true }); // También puedes agregar un intervalo para asegurarte de que los botones y el popover-body se mantengan habilitados/visibles setInterval(() => { keepButtonsEnabled(); keepPopoverBodyVisible(); }, 1000); // Interceptar el evento click para asegurar que los botones siempre estén habilitados document.addEventListener('click', function(event) { if (event.target && event.target.matches( 'button.btn.btn-primary.btn-block.pgdrawbutton,' + 'button.btn.btn-primary.btn-block.spawnavatarbutton,' + 'button#sendtogallery,' + 'button.btn.btn-light.btn-block.btn-sm.kickbutton,' + 'button.btn.btn-light.btn-block.btn-sm.hidedrawing,' + 'button.btn.btn-light.btn-block.btn-sm.mutebutton,' + 'button.btn.btn-light.btn-block.btn-sm.reportbutton,' + 'button#roomlist-refresh' // Added the new button )) { event.target.disabled = false; event.target.removeAttribute('disabled'); event.target.style.pointerEvents = 'auto'; } }, true); // Ejecutar la función cuando el DOM esté completamente cargado if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { removeRequiredAttributes(); // Esperar a que el modal se abra y luego simular el clic const modal = document.querySelector('.modal-dialog'); if (modal) { const observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.attributeName === 'class' && modal.classList.contains('show')) { } }); }); observer.observe(modal, { attributes: true }); } }); } else { removeRequiredAttributes(); // Esperar a que el modal se abra y luego simular el clic const modal = document.querySelector('.modal-dialog'); if (modal) { const observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.attributeName === 'class' && modal.classList.contains('show')) { } }); }); observer.observe(modal, { attributes: true }); } } })();