总安装量
86
今日新增
+0
用户评分
- / 5.0 (0)
当前版本
2.0.0
Bing 搜索栏+中文输入法导致删字修复
修复在 Bing 搜索栏中使用微软拼音输入法时,光标前的文字消失的问题。
根本原因
微软输入法在 compositionstart 之前会通过 beforeinput 派发一个原生的 deleteContentBackward 事件,导致浏览器删除光标前的所有文字。这是输入法与 Bing 搜索建议逻辑之间的兼容性问题。
修复原理
在 keydown 时保存当前 input.value 和光标位置。若有选中文字,则预计算删除选中部分后的值。
在 input(deleteContentBackward)时标记待恢复。
在 compositionstart 时,使用底层原型 setter 恢复内容和光标,绕过 Bing 自身脚本的干扰。
退格键和 Delete 键不受影响,正常删除功能完全保留。
兼容性
✅ 光标在中间输入中文 — 前面文字正常保留
✅ 全选后直接输入 — 原文字正常替换
✅ 部分选中后输入 — 选中文字正常替换
✅ 退格键 / Delete 键 — 正常删字不受影响
✅ 英文输入 — 不受影响
✅ Bing 搜索建议 — 正常工作
✅ DOM 重建后自动重新绑定
✅ Microsoft Edge + 微软拼音
✅ Google Chrome + 微软拼音