фикс этой темы https://zelenka.guru/threads/7917534/ код для тамперманки: https://pastebin.com/4bhBN8mL тестировать тут https://zelenka.guru/chatbox/ С кодом помогал пользователь llimonix
ᓚᘏᗢ очередной раз фикс упоминания в чате chat2-message-tagged.lztng-c9cwn9 .chat2-message-block.lztng-c9cwn9 chat2-message-tagged.lztng-b1l8o4 .chat2-message-block.lztng-b1l8o4
апдейт! убрал прозрачность плашки блокировки дабы текст был читабельным, вот код: // ==UserScript== // @name Lolz Transparent Chat (with Tooltip Exclusion) // @namespace http://tampermonkey.net/ // @version 2.4 // @description Lolz Transparent Chat с исключением подсказок (tippy) // @match https://lzt.market/* // @match https://lolz.live/* // @match https://zelenka.guru/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; const blurEnabled = true; // Включить/отключить размытие const blurChatFull = true; // Включить скрипт на полной странице чата (lolz.live/chatbox) const applyStylesToChat = (chatElement) => { if (chatElement) { chatElement.style.backgroundColor = 'rgba(0, 0, 0, 0.4)'; chatElement.style.border = '1px solid rgba(255, 255, 255, 0.2)'; const childElements = chatElement.querySelectorAll('*'); childElements.forEach(el => { // Исключаем всплывающие подсказки (tippy.js и подобные) if (el.closest('[data-tippy-root], [id^="tippy-"]')) return; el.style.setProperty('background-color', 'transparent', 'important'); el.style.border = 'none'; }); // Фикс исчезновения чата на телефоне const mobileChatPage = chatElement.querySelector('[class^="chat2 chat2-full-inner"]'); if (mobileChatPage) { mobileChatPage.style.backdropFilter = blurEnabled ? 'blur(8px)' : 'none'; } else { chatElement.style.backdropFilter = blurEnabled ? 'blur(8px)' : 'none'; } // Убираем градиент и задаём обводку для сообщений с упоминаниями const taggedMessageBlocks = chatElement.querySelectorAll('.chat2-message-tagged .chat2-message-block'); taggedMessageBlocks.forEach(block => { block.style.backdropFilter = 'none'; }); const messageBlocks = chatElement.querySelectorAll('.chat2-message-block'); messageBlocks.forEach(block => { if (!block.closest('.chat2-message-tagged')) { block.style.setProperty('background-color', 'transparent', 'important'); block.style.setProperty('border', '1px solid rgba(128, 128, 128, 0.5)', 'important'); block.style.borderRadius = '5px'; } else { block.style.setProperty('background', 'transparent', 'important'); block.style.setProperty('border', '3px solid rgba(34, 142, 93, 1)', 'important'); block.style.borderRadius = '5px'; } }); const messageHeaders = chatElement.querySelectorAll('.chat2-message-header'); messageHeaders.forEach(header => { header.style.setProperty('background-color', 'transparent', 'important'); header.style.border = 'none'; }); const messageTexts = chatElement.querySelectorAll('.chat2-message-text'); messageTexts.forEach(text => { text.style.setProperty('background-color', 'transparent', 'important'); text.style.border = 'none'; }); } }; const initializeChatStyling = () => { const chatElement = document.querySelector('[class^="chat2-floating"]'); const chatElementFull = document.querySelector('[id="chat2-full"]'); if (chatElement) { applyStylesToChat(chatElement); const observer = new MutationObserver(() => { applyStylesToChat(chatElement); }); observer.observe(chatElement, { childList: true, subtree: true }); } else if (chatElementFull && blurChatFull) { applyStylesToChat(chatElementFull); const observer = new MutationObserver(() => { applyStylesToChat(chatElementFull); }); observer.observe(chatElementFull, { childList: true, subtree: true }); } else { setTimeout(initializeChatStyling, 300); } }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { initializeChatStyling(); }); } else { initializeChatStyling(); } })(); JS // ==UserScript== // @name Lolz Transparent Chat (with Tooltip Exclusion) // @namespace http://tampermonkey.net/ // @version 2.4 // @description Lolz Transparent Chat с исключением подсказок (tippy) // @match https://lzt.market/* // @match https://lolz.live/* // @match https://zelenka.guru/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; const blurEnabled = true; // Включить/отключить размытие const blurChatFull = true; // Включить скрипт на полной странице чата (lolz.live/chatbox) const applyStylesToChat = (chatElement) => { if (chatElement) { chatElement.style.backgroundColor = 'rgba(0, 0, 0, 0.4)'; chatElement.style.border = '1px solid rgba(255, 255, 255, 0.2)'; const childElements = chatElement.querySelectorAll('*'); childElements.forEach(el => { // Исключаем всплывающие подсказки (tippy.js и подобные) if (el.closest('[data-tippy-root], [id^="tippy-"]')) return; el.style.setProperty('background-color', 'transparent', 'important'); el.style.border = 'none'; }); // Фикс исчезновения чата на телефоне const mobileChatPage = chatElement.querySelector('[class^="chat2 chat2-full-inner"]'); if (mobileChatPage) { mobileChatPage.style.backdropFilter = blurEnabled ? 'blur(8px)' : 'none'; } else { chatElement.style.backdropFilter = blurEnabled ? 'blur(8px)' : 'none'; } // Убираем градиент и задаём обводку для сообщений с упоминаниями const taggedMessageBlocks = chatElement.querySelectorAll('.chat2-message-tagged .chat2-message-block'); taggedMessageBlocks.forEach(block => { block.style.backdropFilter = 'none'; }); const messageBlocks = chatElement.querySelectorAll('.chat2-message-block'); messageBlocks.forEach(block => { if (!block.closest('.chat2-message-tagged')) { block.style.setProperty('background-color', 'transparent', 'important'); block.style.setProperty('border', '1px solid rgba(128, 128, 128, 0.5)', 'important'); block.style.borderRadius = '5px'; } else { block.style.setProperty('background', 'transparent', 'important'); block.style.setProperty('border', '3px solid rgba(34, 142, 93, 1)', 'important'); block.style.borderRadius = '5px'; } }); const messageHeaders = chatElement.querySelectorAll('.chat2-message-header'); messageHeaders.forEach(header => { header.style.setProperty('background-color', 'transparent', 'important'); header.style.border = 'none'; }); const messageTexts = chatElement.querySelectorAll('.chat2-message-text'); messageTexts.forEach(text => { text.style.setProperty('background-color', 'transparent', 'important'); text.style.border = 'none'; }); } }; const initializeChatStyling = () => { const chatElement = document.querySelector('[class^="chat2-floating"]'); const chatElementFull = document.querySelector('[id="chat2-full"]'); if (chatElement) { applyStylesToChat(chatElement); const observer = new MutationObserver(() => { applyStylesToChat(chatElement); }); observer.observe(chatElement, { childList: true, subtree: true }); } else if (chatElementFull && blurChatFull) { applyStylesToChat(chatElementFull); const observer = new MutationObserver(() => { applyStylesToChat(chatElementFull); }); observer.observe(chatElementFull, { childList: true, subtree: true }); } else { setTimeout(initializeChatStyling, 300); } }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { initializeChatStyling(); }); } else { initializeChatStyling(); } })();
Апдейт! оба варианта упоминания в чате теперь с прозрачным фоном и зелёной обводкой // ==UserScript== // @name Lolz Transparent Chat (with Tooltip Exclusion) // @namespace http://tampermonkey.net/ // @version 2.4 // @description Lolz Transparent Chat с исключением подсказок (tippy) // @match https://lzt.market/* // @match https://lolz.live/* // @match https://zelenka.guru/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; const blurEnabled = true; // Включить/отключить размытие const blurChatFull = true; // Включить скрипт на полной странице чата (lolz.live/chatbox) const applyStylesToChat = (chatElement) => { if (chatElement) { chatElement.style.backgroundColor = 'rgba(0, 0, 0, 0.4)'; chatElement.style.border = '1px solid rgba(255, 255, 255, 0.2)'; const childElements = chatElement.querySelectorAll('*'); childElements.forEach(el => { // Исключаем всплывающие подсказки (tippy.js и подобные) if (el.closest('[data-tippy-root], [id^="tippy-"]')) return; el.style.setProperty('background-color', 'transparent', 'important'); el.style.border = 'none'; }); // Фикс исчезновения чата на телефоне const mobileChatPage = chatElement.querySelector('[class^="chat2 chat2-full-inner"]'); if (mobileChatPage) { mobileChatPage.style.backdropFilter = blurEnabled ? 'blur(8px)' : 'none'; } else { chatElement.style.backdropFilter = blurEnabled ? 'blur(8px)' : 'none'; } // Убираем градиент и задаём обводку для сообщений с упоминаниями const taggedMessageBlocks = chatElement.querySelectorAll('.chat2-message-tagged .chat2-message-block'); taggedMessageBlocks.forEach(block => { block.style.backdropFilter = 'none'; }); const messageBlocks = chatElement.querySelectorAll('.chat2-message-block'); messageBlocks.forEach(block => { if (!block.closest('.chat2-message-tagged')) { block.style.setProperty('background-color', 'transparent', 'important'); block.style.setProperty('border', '1px solid rgba(128, 128, 128, 0.5)', 'important'); block.style.borderRadius = '5px'; } else { block.style.setProperty('background', 'transparent', 'important'); block.style.setProperty('border', '3px solid rgba(34, 142, 93, 1)', 'important'); block.style.borderRadius = '5px'; } }); const messageHeaders = chatElement.querySelectorAll('.chat2-message-header'); messageHeaders.forEach(header => { header.style.setProperty('background-color', 'transparent', 'important'); header.style.border = 'none'; }); const messageTexts = chatElement.querySelectorAll('.chat2-message-text'); messageTexts.forEach(text => { text.style.setProperty('background-color', 'transparent', 'important'); text.style.border = 'none'; }); // Стилизация reply-блоков пользователя с зелёной обводкой и прозрачным фоном const replyElements = chatElement.querySelectorAll('[class*="reply-message-your"]'); replyElements.forEach(el => { el.style.setProperty('background', 'transparent', 'important'); // убираем градиент el.style.setProperty('background-color', 'transparent', 'important'); // на всякий случай el.style.setProperty('border', '3px solid rgba(34, 142, 93, 1)', 'important'); el.style.borderRadius = '5px'; }); } }; const initializeChatStyling = () => { const chatElement = document.querySelector('[class^="chat2-floating"]'); const chatElementFull = document.querySelector('[id="chat2-full"]'); if (chatElement) { applyStylesToChat(chatElement); const observer = new MutationObserver(() => { applyStylesToChat(chatElement); }); observer.observe(chatElement, { childList: true, subtree: true }); } else if (chatElementFull && blurChatFull) { applyStylesToChat(chatElementFull); const observer = new MutationObserver(() => { applyStylesToChat(chatElementFull); }); observer.observe(chatElementFull, { childList: true, subtree: true }); } else { setTimeout(initializeChatStyling, 300); } }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { initializeChatStyling(); }); } else { initializeChatStyling(); } })(); JS // ==UserScript== // @name Lolz Transparent Chat (with Tooltip Exclusion) // @namespace http://tampermonkey.net/ // @version 2.4 // @description Lolz Transparent Chat с исключением подсказок (tippy) // @match https://lzt.market/* // @match https://lolz.live/* // @match https://zelenka.guru/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; const blurEnabled = true; // Включить/отключить размытие const blurChatFull = true; // Включить скрипт на полной странице чата (lolz.live/chatbox) const applyStylesToChat = (chatElement) => { if (chatElement) { chatElement.style.backgroundColor = 'rgba(0, 0, 0, 0.4)'; chatElement.style.border = '1px solid rgba(255, 255, 255, 0.2)'; const childElements = chatElement.querySelectorAll('*'); childElements.forEach(el => { // Исключаем всплывающие подсказки (tippy.js и подобные) if (el.closest('[data-tippy-root], [id^="tippy-"]')) return; el.style.setProperty('background-color', 'transparent', 'important'); el.style.border = 'none'; }); // Фикс исчезновения чата на телефоне const mobileChatPage = chatElement.querySelector('[class^="chat2 chat2-full-inner"]'); if (mobileChatPage) { mobileChatPage.style.backdropFilter = blurEnabled ? 'blur(8px)' : 'none'; } else { chatElement.style.backdropFilter = blurEnabled ? 'blur(8px)' : 'none'; } // Убираем градиент и задаём обводку для сообщений с упоминаниями const taggedMessageBlocks = chatElement.querySelectorAll('.chat2-message-tagged .chat2-message-block'); taggedMessageBlocks.forEach(block => { block.style.backdropFilter = 'none'; }); const messageBlocks = chatElement.querySelectorAll('.chat2-message-block'); messageBlocks.forEach(block => { if (!block.closest('.chat2-message-tagged')) { block.style.setProperty('background-color', 'transparent', 'important'); block.style.setProperty('border', '1px solid rgba(128, 128, 128, 0.5)', 'important'); block.style.borderRadius = '5px'; } else { block.style.setProperty('background', 'transparent', 'important'); block.style.setProperty('border', '3px solid rgba(34, 142, 93, 1)', 'important'); block.style.borderRadius = '5px'; } }); const messageHeaders = chatElement.querySelectorAll('.chat2-message-header'); messageHeaders.forEach(header => { header.style.setProperty('background-color', 'transparent', 'important'); header.style.border = 'none'; }); const messageTexts = chatElement.querySelectorAll('.chat2-message-text'); messageTexts.forEach(text => { text.style.setProperty('background-color', 'transparent', 'important'); text.style.border = 'none'; }); // Стилизация reply-блоков пользователя с зелёной обводкой и прозрачным фоном const replyElements = chatElement.querySelectorAll('[class*="reply-message-your"]'); replyElements.forEach(el => { el.style.setProperty('background', 'transparent', 'important'); // убираем градиент el.style.setProperty('background-color', 'transparent', 'important'); // на всякий случай el.style.setProperty('border', '3px solid rgba(34, 142, 93, 1)', 'important'); el.style.borderRadius = '5px'; }); } }; const initializeChatStyling = () => { const chatElement = document.querySelector('[class^="chat2-floating"]'); const chatElementFull = document.querySelector('[id="chat2-full"]'); if (chatElement) { applyStylesToChat(chatElement); const observer = new MutationObserver(() => { applyStylesToChat(chatElement); }); observer.observe(chatElement, { childList: true, subtree: true }); } else if (chatElementFull && blurChatFull) { applyStylesToChat(chatElementFull); const observer = new MutationObserver(() => { applyStylesToChat(chatElementFull); }); observer.observe(chatElementFull, { childList: true, subtree: true }); } else { setTimeout(initializeChatStyling, 300); } }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { initializeChatStyling(); }); } else { initializeChatStyling(); } })();