|
輸入法未開啟時(shí) |
輸入法開啟時(shí) |
| Firefox |
- 正常按下再放起A鍵,會(huì)依次觸發(fā)keydown, keypress, input, keyup
- 僅按下修飾鍵(Ctrl/Shift/Alt)時(shí),不會(huì)觸發(fā)keypress. 注意:按下Esc, Insert, Tab, Pause, Left, Up, Enter等鍵時(shí),也會(huì)觸發(fā)keypress. 小結(jié):keypress在按下非字符鍵時(shí),有些會(huì)觸發(fā),有些不會(huì)觸發(fā),具體瀏覽器還不同。
- 僅在輸入框的值有變化時(shí),才會(huì)觸發(fā)input. 比如Backspace鍵會(huì)引起值的變化,因此會(huì)觸發(fā)input. 但是要注意:光標(biāo)在輸入值最后面時(shí),按下Delete鍵不會(huì)改變輸入值,但依舊會(huì)觸發(fā)input.
- 按住某鍵不放時(shí),會(huì)連續(xù)觸發(fā)keydown. 當(dāng)按下的是會(huì)觸發(fā)keypress的鍵(參考上面第2條)時(shí)候,還會(huì)連續(xù)觸發(fā)keypress. 同樣,如果按下的是會(huì)觸發(fā)input的鍵,也會(huì)連續(xù)觸發(fā)input.
- Ctrl+C/V/X快捷鍵粘貼復(fù)制等操作時(shí),會(huì)依次觸發(fā)keydown, keydown, keypress, input, keyup, keyup. 其中input僅在值有變化時(shí)才觸發(fā)(比如粘貼一張圖片到文字輸入框時(shí),不會(huì)觸發(fā)input)。
- Ctrl+Z/Y操作時(shí),和第5條規(guī)律一致。
- 通過鼠標(biāo)右鍵進(jìn)行粘貼復(fù)制等操作時(shí),僅會(huì)觸發(fā)input.
|
- 輸入法中輸入第一個(gè)字符時(shí),觸發(fā)keydown, keypress. 輸入過程中不會(huì)觸發(fā)鍵盤事件,輸入完成時(shí),會(huì)觸發(fā)input, input, keyup.
- 輸入法開啟時(shí),輸入數(shù)字時(shí),和輸入法未開啟時(shí)一致。
|
| IE |
和Firefox基本一致,就是input改成propertychange. 注意: 2. 在ie中,僅字符鍵會(huì)觸發(fā)keypress. 這比firefox強(qiáng)。 3. 在ie中,Esc和Backspace功能一樣,這和firefox不同。在ie中,Delete鍵沒有改變值時(shí),不會(huì)觸發(fā)propertychange. 5. 在ie中,Ctrl+C/X/V不會(huì)觸發(fā)keypress. 6. 在ie中,如果監(jiān)聽的事件中YAHOO.log這種頁面輸出的語句時(shí),會(huì)導(dǎo)致Ctrl+Z/Y失效。沒有輸入語句時(shí)不會(huì)。(這可以認(rèn)為是IE的Bug) |
- 輸入法中輸入第一個(gè)字符時(shí),觸發(fā)keydown, keyup. 輸入過程中也會(huì)連續(xù)觸發(fā)keydown, keyup. 輸入完成時(shí),觸發(fā)keydown, propertychange, keyup. (無論怎樣都不會(huì)觸發(fā)keypress)
- 輸入法開啟時(shí),輸入數(shù)字時(shí),和輸入法未開啟時(shí)一樣,但不會(huì)觸發(fā)keypress.
|
| Safari |
大部分和Firefox一致。注意以下幾條: 2. 和IE類似,僅字符鍵會(huì)觸發(fā)keypress. 5. 和IE一致。 |
- 輸入法中輸入第一個(gè)字符時(shí),觸發(fā)keydown, input, keyup. 輸入過程中會(huì)連續(xù)觸發(fā)keydown, input, input, keyup. 輸入完成時(shí),觸發(fā)keydown, input, input, keyup. (和IE一樣,不會(huì)觸發(fā)keypress)
- 輸入法開啟時(shí),輸入數(shù)字時(shí),和IE一樣,不會(huì)觸發(fā)keypress.
|
| Opera |
大部分和Firefox一致。注意以下幾條: 2. 所有鍵都會(huì)觸發(fā)keypress. 4. 連續(xù)按下某鍵時(shí),僅會(huì)連續(xù)觸發(fā)keypress. (這個(gè)處理比其它瀏覽器合理) 5. 多個(gè)keypress. |
和上面的瀏覽器都不同,僅在輸入完成時(shí)觸發(fā)input. |