我们分叉了实验性的Mediawiki VisualEditor.这个WYSIWYM编辑器使用隐藏的textarea和DOM中的内容表示.当您关注视图时,焦点将放在textarea上,视图会监听keydown事件以将每个键入的字符添加到内容中,然后清空textarea的值.
仅在Mac OS X上使用半个字符会出现此问题.如果键入^或¨或任何需要打印第二个字符的字符,则会触发keydown事件.因此,当用户想要’ê’时,他会输入’^’.查看获取textarea值(‘^’)并清除textarea值.然后,用户输入“e”.视图显示’^ e’.作为奖励,在Chrome上(在这种情况下Firefox更好),用户将无法在任何输入中键入当前页面上的任何重音,而无需重新加载窗口.
有什么方法可以区分真正的角色和半角色吗?
解决方法:
刚刚找到了解决方法.通过侦听keyup事件,dead key返回一个keyIdentifier属性设置为Unidentified.
所以:
keyuphandler = function(e)
{
if (e.keyIdentifier === 'Unidentified')
{
return;
}
doSomething();
}