您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Revives lost first Unicode char + appends full word (without first letter) if Unikey mod char used
// ==UserScript== // @name Telegram Unicode First Char Fix // @namespace http://tampermonkey.net/ // @version 2.0 // @description Revives lost first Unicode char + appends full word (without first letter) if Unikey mod char used // @match https://web.telegram.org/* // @grant none // ==/UserScript== (function () { 'use strict'; const isUnicode = (char) => char && char.charCodeAt(0) > 127; const isWeirdChar = (char) => char === '·' || char === '`'; let lastChar = ''; let watching = false; let cachedWord = ''; let hasUnikeyMod = false; window.addEventListener('beforeinput', (e) => { const input = document.querySelector('div.input-message-input'); if (!input) return; const content = input.textContent || ''; // ✅ Store cached word when weird Unikey mark is typed if (isWeirdChar(e.data)) { const words = content.trim().split(/\s+/).filter(Boolean); if (words.length === 1) { cachedWord = words[0]; hasUnikeyMod = true; //console.log('💾 Cached word:', JSON.stringify(cachedWord)); } return; } // 🛠️ Only care about first unicode char AND empty box if (!e.data || content.length > 0) return; if (isUnicode(e.data)) { lastChar = e.data; //console.log('🔍 First char is unicode:', lastChar); if (watching) return; watching = true; const check = setInterval(() => { if (!input.isConnected) { clearInterval(check); watching = false; return; } if ((input.textContent || '') === '') { let finalText = lastChar; if (hasUnikeyMod && cachedWord.length > 1) { finalText += cachedWord.slice(1); // drop first char //console.log('🧬 Appended from cache:', JSON.stringify(cachedWord.slice(1))); } input.textContent = finalText; input.dispatchEvent(new InputEvent('input', { bubbles: true })); const sel = window.getSelection(); sel.collapse(input.lastChild || input, input.textContent.length); // 🔁 Reset flags cachedWord = ''; hasUnikeyMod = false; watching = false; clearInterval(check); } else { watching = false; clearInterval(check); } }, 10); } }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址