人生中第1個bug!已解決~

學習到js模式中的中介者模式,模式中介紹做一個按鍵小遊戲,但是fromCharCode來返回按鍵值 調用onkeyup 會返回0; 用onkeypress的話 按住不放也會一直記錄成績;

導致遊戲失去意義。


科普一下:

charCode 屬性返回onkeypress事件觸發鍵值的字母代碼。

Unicode 字符代碼是一個字母的數字 (如數字 "97" 代表字母 "a")。

提示: 所有 Unicode 字符列表可查看我們的 完整 Unicode 參考手冊

提示: 如果你需要將 Unicode 值轉換爲字符,可以使用 fromCharCode() 方法。

注意: 如果該屬性用於 onkeydown 或 onkeyup 事件,返回值總爲 "0"。

注意: 該屬性是隻讀的。

注意: which 和 keyCode 屬性提供瞭解決瀏覽器的兼容性的方法,最新版本的 DOM 事件推薦使用 key 屬性來替代該方法。

注意:IE8 及其更早版本不支持 which 屬性。不支持的瀏覽器可使用 keyCode 屬性。但是, keyCode 屬性在 Firefox 瀏覽器的 onkeypress 事件中是無效的。 兼容這些瀏覽器你可以使用以下代碼:

var x = event.charCode || event.keyCode; // 使用 charCode 或 keyCode, 這樣可支持不同瀏覽器

提示: 你同樣可以使用 keyCode 屬性來檢測特殊的按鍵 (如 "caps lock" 或 箭頭按鍵)。 keyCode 和 charCode 屬性提供瞭解決瀏覽器的兼容性的方法,最新版本的 DOM 事件推薦使用 key 屬性來替代該方法。

提示: 如果你想查看是否按下了 "ALT", "CTRL", "META" 或 "SHIFT" 鍵,可使用 altKeyctrlKeymetaKey 或 shiftKey 屬性。


解決方法:用key可以 但是解決問題 但是高級程序設計書中不提倡使用

 用keyword 但是隻能用字母鍵,而且不區分大小寫,(它都按大寫算),所以返回值得+32。


  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章