2012年7月1日星期日

不同浏览器在中文输入过程的细微差别

之前在使用QtWebkit的时候发现它对中文输出控制上跟其他浏览器有一点儿小的差别。现在就Chrome、Firefox、IE9简单对比一下对中文输入过程的处理。
打开一个包含文本输入框的网页,启用中文输入法,鼠标点击输入框,输入几个字母(输入法状态栏出现待选词,但还没有确认输入),在这时以三种方式失当前输入框失去焦点,一种是点击网页上空白区域,另一种是点击地址栏,最后一种是点击其他程序的窗口。
对于第一种方式,三种浏览器的行为是一样的,都是输入框失去焦点,输入法取消输入过程。
对于第二种方式,Firefox和IE9也都是取消输入过程,而Chrome却是把输入的字母当作键的内容填到了输入框,也就是说输中文输到一半的时候,失去焦点时会把刚才键入的字母当作输入内容。
对于第三种方式,Firefox和IE9都是保留输入法状态,当再切回时,仍然可以接着刚才未完成的输入过程继续按键;但是Chrome的行为却跟第二种方式时一致,把键入的字母当作输入内容填入了输入框。
可以看到Firefox和IE的行为是一致的,而Chrome有些不同。

没有评论: