键下法字符和半字符不同
Differency normal characters and half characters on keydown
本文关键字:字符 更新时间:2023-09-26
我们分叉了实验性的Mediawiki可视化编辑器。此所见即所得编辑器使用隐藏的文本区域和 DOM 中内容的表示形式。聚焦视图时,焦点将提供给文本区域,视图侦听 keydown 事件以将每个键入的字符添加到内容中,然后清空文本区域的值。
仅在 Mac OS X 上使用半字符时出现问题。如果键入 ^ 或 ̈ 或任何需要打印第二个字符的字符,则会触发 keydown 事件。因此,当用户想要"ê"时,他会键入"^"。查看获取文本区域值 ('^'( 并清理文本区域值。然后,用户键入"e"。视图显示"^e"。作为奖励,在Chrome上(在这种情况下Firefox更好(,用户将永远无法在不重新加载窗口的情况下在任何输入中键入当前页面上的任何重音。
有没有办法区分真实角色和半个角色?
刚刚找到了一个解决方法。通过侦听keyup
事件,死键返回设置为 Unidentified
的 keyIdentifier
属性
所以:
keyuphandler = function(e)
{
if (e.keyIdentifier === 'Unidentified')
{
return;
}
doSomething();
}
您是从按键事件中获取字符还是从文本区域读取字符?我刚刚用输入字段尝试了这个,第一次按下 ^ 按钮时它的值没有改变。但是,我正在使用窗户。最后的手段显然是以不同的方式处理这些修改按键。如果您的目标是支持 alt+654 等组合键,这可能会变得有些复杂。下班后回家后,我会在Mac上再试一次。
相关文章:
- 在JavaScript中输出转义字符
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 使用RegExp查找url中的字符
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- 根据页面的位置突出显示文本中的字符
- 元素的内容必须由格式正确的字符数据或标记组成
- 如何将字符串拆分为字符,但在javascript中保留空格
- 使用Google Maps API向标记添加多个字符
- 处理JSON字符串会导致JavaScript错误
- 单元格的工具提示或标题不显示超过2000个字符
- javascript替换换行符和特殊字符
- angularjs删除动态形式元素中的特殊字符
- 元素名称上带有短划线 (-) 字符的 Json 对象
- 无法呈现js unicode字符“u1F310”
- 从指定范围创建字符数组
- 附加“;显示更多“;仅当满足设定的字符数时,链接到截断的段落