欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript鍵盤事件測試小結(jié)

lifesinger
August 25th, 2008

測試環(huán)境

測試結(jié)果

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