2

我们分叉了实验性的 Mediawiki VisualEditor。这个 WYSIWYM 编辑器使用隐藏的文本区域和 DOM 中的内容表示。当您聚焦视图时,焦点被赋予 textarea,视图监听 keydown 事件以将每个键入的字符添加到内容中,然后清空 textarea 的值。

仅在 Mac OS X 上出现半字符问题。如果您键入 ^ 或 ¨ 或任何需要打印第二个字符的字符,则会触发 keydown 事件。因此,当用户想要一个“ê”时,他输入“^”。查看获取 textarea 值('^')并清理 textarea 值。然后,用户键入“e”。视图显示“^e”。作为奖励,在 Chrome 上(在这种情况下 Firefox 更好),用户将永远无法在不重新加载窗口的情况下在任何输入中键入当前页面上的任何重音符号。

有什么办法可以区分真人和半人吗?

4

2 回答 2

3

刚刚找到一个解决方法。通过监听keyup事件,死键返回一个keyIdentifier设置为 的属性Unidentified

所以 :

keyuphandler = function(e)
{
    if (e.keyIdentifier === 'Unidentified')
    {
        return;
    }
    doSomething();
}
于 2012-05-24T08:12:24.277 回答
0

您是从按键事件中获取字符还是从文本区域读取字符?我只是用一个输入字段尝试了这个,它的值在第一次按下 ^ 按钮时没有改变。但是,我正在使用 Windows。最后的手段显然是以不同的方式处理这些修改按键。如果您的目标是支持 alt+654 等组合键,这可能会有些复杂。下班回家后,我会在我的 Mac 上再试一次。

于 2012-05-23T14:12:05.417 回答