起因:
用中文输入,输入了一串英文,空格就会出来输入法第一个,回车就会出现输入的内容,就是一串英文。
如果绑定了 keyup 事件,在window下,不会触发keyup事件,在mac下会触发。
解决方法:
在keydown 事件中,判断是否有一个完整的事件链, 正常回车是 先 keydown 再keyup (回车发送内容);
在中文输入法中,是没有触发keydown 这个的。
scope.keydown_enter = false; // MAC 中文输入 不触发
scope.editAreaKeyUp = function(evt)
{
if(13 == evt.keyCode && scope.keydown_enter)
{
scope.keydown_enter = false;
evt.stopPropagation();
evt.preventDefault();
}
}
scope.editAreaKeyDown = function(evt)
{
ydpop.close({singletonId : 'ydpop_emoticon'});
if(13 == evt.keyCode)
{
scope.keydown_enter = true;
evt.stopPropagation();
evt.preventDefault();
}
}