富文本兼容性问题归纳(ubuntu)

周五在ubuntu上测了一下重构后的富文本,发现依然存在一个bug: 开启了中文输入法的话, 输入框就监听不到按钮事件了。

这个问题在webqq的聊天框一直存在着,也有很多用户投诉,具体表现为: 切换到中文输入法(ibus or other),输入一段内容后,第一次按下回车键可以发送消息, 之后的回车键都变成输入框的换行了。

花了一个中午排查了下,总算找到原因了:

在ubuntu上面,切换到中文输入法的时候,只有第一次按下的keydown/keyup事件会被抛出,之后都keydown和keyup事件都会被输入法接收且不会冒泡,因此输入框没办法对按钮作出响应。这个行为跟用什么浏览器无关,我......

富文本兼容性问题归纳(win)

上周抽空把去年写的富文本重写了一下,封装成基本UI组件,就可以在聊天框之外的地方复用了。个人觉得富文本是个兼容问题最多的模块之一,尤其是文档也没几个,把mozilla的api文档和IE的dom api关于selection和range的看了一个遍,一个个试,总算找到勉强能用的方法。

其实之前的富文本代码太乱,而且还有不少bug,只是产品经理不给时间改,O__O"…

这个富文本没有用iframe来做输入框,原因有二:

iframe是所有dom节点中消耗性能最大的,开多几个ie6/7就会卡到不行了;

因为webqq是多窗口聊天的,当光标点击到输入框时,iframe会捕获鼠标事......