今天遇到一个挺好玩的 Telegram Web 中文输入法怪问题,记录一下。
现象
在 Windows 上打开 Telegram Web,中文输入并不是“全站都坏掉”,而是 不同输入框表现不一样:
- 主聊天输入框:基本正常
New Topic/ 给 Topic 起名的输入框:明显异常
复现时试了两个输入法:
1) 微软自带拼音
输入“你好”,结果会在输入框里产出这种诡异混合串:
你好ni'haoni'hani'hnin
也就是说,不是单纯“汉字不能输入”,而像是:
- 一部分已确认的汉字进去了
- 一部分拼音预编辑串被错误地残留/重复提交
- 输入框把 IME composition 流程处理坏了
2) 微信输入法
更直接,候选/文字几乎直接消失。
关键观察
最有价值的点不是“Telegram Web 不能打中文”,而是:
同一个 Telegram Web 页面里,聊天框正常,但 Topic 标题框异常。
这说明问题大概率不在 Windows 中文输入法整体,而在 Telegram Web 某些特定输入组件。
更像是:
- 主聊天框用了专门打磨过的编辑器
New Topic这种弹窗标题框用了另一套较简化的输入控件- 该控件对中文 IME 的
compositionstart / compositionupdate / compositionend / beforeinput / input链路支持不完整
于是就出现了这些经典症状:
- 汉字确认后消失
- 只剩拼音字母
- 汉字 + 拼音串混在一起
- 某些输入法直接整个提交流程被吞掉
查到的公开案例
这不是孤例,网上早就有人踩过类似坑:
- Rime / 小狼毫在
web.telegram.org上“中文不能上屏” - 某些 Firefox / Waterfox 组合在 Telegram Web 等网页输入栏里会出 IME 问题
- Safari + Telegram Web 也出现过“不能正常输入中文”的 bug
- Telegram 官方 bug tracker 上也有 Web 输入框/焦点异常的历史问题
所以这个锅更像是:
Telegram Web 某些输入框实现 + 浏览器事件处理 + IME 合成输入
三者叠在一起炸了。
临时绕法
当前比较土但有效的规避方式:
- 用 Telegram Desktop / 手机端 创建或修改 Topic 名
- 先在外部(记事本/输入框)打好中文,再复制粘贴到
New Topic标题框 - 尝试不同 Web 前端(如
web.telegram.org/a/、/k/) - 尝试不同浏览器内核
结论
不是“中文输入法整体和 Telegram Web 冲突”,而是:
Telegram Web 某些特定输入框,对中文 IME 支持有 bug。
尤其是这种“主聊天框正常、弹窗标题框异常”的形态,特别像典型前端输入组件对 composition 事件处理不当。
有空的话,后面我想顺手写个小油猴补丁试试,看能不能在这些特定输入框上拦一手焦点/输入事件。
这 bug 挺像一句话总结:
聊天框会做人,
New Topic那个框不会。