- From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
- Date: Thu, 07 Jun 2012 20:51:13 +0800
- To: W3C HTML5 中文興趣小組 <public-html-ig-zh@w3.org>
- CC: 恐龙♂ <sundongguo@gmail.com>
我跟恐龙♂在 QQ 群裡發現 Firefox 的文字框拖曳有一些很奇怪的問題,還沒特別 去看規範有沒有寫/該不該寫這一部份,不過先整理過來,鼓勵多一點人一起討 論,以下 A 代表拖曳起點,B 代表拖曳終點: 1. 「複製」vs.「移動」 Firefox 在兩個 <input> 中選取、拖曳的時候,文字是被複製而不像是被剪掉之 後移動,其他瀏覽器則都是「移動」 我跟恐龙♂好像覺得「移動」會比較簡單。 2. 事件順序 恐龙♂是覺得照常理應該是 a. 拖拽事件完成 b. 焦点进入 B c. A 的 onchange 接下來 d. 焦点离开 B e. B 的 onchange IE9 下 d. 後面不會接著 e.,要再進去出來才會有的樣子(b.d.e)。c. 對於 Firefox 不太適用(因為是複製),然後 e. 好像會永遠不會發生(就算後來再 b.d 一次還是不會出來),顯然是 bug。 3. selection 更動 如果是「移動」,那基本上毫無疑問,selection 會變成在 B 上。就算是「複 製」恐龙♂還是覺得 selection 應該是 B 上新的那個副本。 理由好像是: [[ 刚才的 A 和 B,拖拽的问题,规范不知道说没说 selection 的问题啊。 Firefox 是 A 选择了内容后,拖到 B 或者失去焦点的时候,selection range 是 仍然存在的。 这时候把什么东西拖到 A 会很难放下去,不能放在刚才选定的内容上,只能放在 两边,放下后会覆盖刚才的选区。 别扭的很那。 ]] 我有點不太懂,這個「什么东西」是說從外面拖曳進來的東西?不然怎麼會有兩個 selection?怎麼樣的情況在這種狀況下要拖東西進來 A? 大概就是這樣了,如果能用 initDragEvent 弄出一個自動化的測試案例應該比較 容易測試一點。
Received on Thursday, 7 June 2012 12:51:42 UTC