- From: John Hax <johnhax@gmail.com>
- Date: Wed, 15 Jun 2011 18:07:21 +0800
- To: "Kang-Hao (Kenny) Lu" <kennyluck@w3.org>
- Cc: (wrong string) 樂會ML <public-html-ig-zh@w3.org>
Received on Wednesday, 15 June 2011 10:07:49 UTC
2011/6/15 Kang-Hao (Kenny) Lu <kennyluck@w3.org> > > > 1. 阻塞脚本。不过这也会阻塞ui。所以只适用于手机等设备。 > > > > 我不太懂為什麼手機等設備沒有問題,敬請指教。 > > 因为手机等设备上输入法本身就可认为是一个阻塞式的模态对话框。 Hixie写的,就是IE的行为貌似。 关于FF的做法,FF的做法只是小的优化(value不变时不做任何改动)。关键是保持一致。例如说明这个行为是由MutationEvent事件触发。 可以比照的是input事件,该事件是由html5规范定义的。按照当前规范,input事件可以由延迟(即多次快速击键只产生一次input事件),并且在value值不改变时不会发生(但目前浏览器均未完全符合,在copypaste一个恰好相同的值时仍然会触发input)。不过input只针对用户操作,脚本修改value并不会触发。 好在即使浏览器没有内置这种优化,开发者很容易通过脚本实现。即使行为有一些小差异,也不至于对开发者造成严重影响。 > > 当使用输入法时,我个人感觉取消输入法已经输入的内容不是很好,会严重干扰 > > 最终用户。所以还是和不用输入法时一样, 仅仅移动光标到最后。 > > 同意,我信裡也是@樣寫的,不過 Hixie 的回答是輸入法是 UI 的東西不在規範 > 範圍內所以不寫進 HTML5。@我不太服氣,因為我覺得@好像會影響瀏覽器觸發 > DOM3 Events 的 compositionend[4] 事件的個數。但我還不清楚@個事件的實作 > 情形,手上也沒有 IE (有 CompositionEvent 的實作)可以試驗一下。 > > IE(测了IE8)没有compositionEvent。 实际上我没有见过cancel ime输入的例子。 compositionevent实现的情形方面。FF不支持compositionupdate,也不支持data属性,因此无法得到进行输入法输入时的状态。 而chrome支持compositionupdate和data属性,但是Chrome有个问题就是在compositionupdate之后居然会触发input事件(修改了input value),这是有问题的。所以情况就是,要么没有,要么画蛇添足了。
Received on Wednesday, 15 June 2011 10:07:49 UTC