X-Git-Url: http://git.osdn.jp/view?p=pettanr%2FclientJs.git;a=blobdiff_plain;f=0.6.x%2Fjs%2F11_hid%2F01_KB.js;fp=0.6.x%2Fjs%2F11_hid%2F01_KB.js;h=9d9646e5558b36c9c6722d1cf7d6aed0b027a625;hp=83e0bfbc1747d0bea8b6e3fbcb1da989acc0edaa;hb=04ac203dfb25cc7e92db1f7f9f77122841f7cb1a;hpb=bafa8683f87b2f909d1301fca80684bf9ff221ed diff --git a/0.6.x/js/11_hid/01_KB.js b/0.6.x/js/11_hid/01_KB.js index 83e0bfb..9d9646e 100644 --- a/0.6.x/js/11_hid/01_KB.js +++ b/0.6.x/js/11_hid/01_KB.js @@ -92,7 +92,7 @@ var X_KB_SPECIALS = eval( // IE5- 対策 case 'keypress' : // keydown 側で発火しているものは再び発火しない - console.log( 'keypress : chrCode:' + chrCode + ' down:' + X_KB_DOWN_KEYS[ chrCode ] + ( X_KB_CANCELED[ chrCode ] ? ' Cancel!' : '' ) ); + if( X_KB_DOWN_KEYS[ chrCode ] ){ return X_KB_CANCELED[ chrCode ] ? X_CALLBACK_PREVENT_DEFAULT : cb; } else @@ -114,7 +114,9 @@ var X_KB_SPECIALS = eval( // IE5- 対策 metaKey : !!X_KB_DOWN_KEYS[ 224 ] } ); - X_KB_lastIs10Key = true; + X_KB_lastIs10Key = false; + + console.log( X_KB_lastKeyCode + 'keypress : chrCode:' + chrCode + ' down:' + X_KB_DOWN_KEYS[ chrCode ] + ( X_KB_CANCELED[ chrCode ] ? ' Cancel!' : '' ) ); }; return cb; @@ -141,14 +143,21 @@ var X_KB_SPECIALS = eval( // IE5- 対策 if( X_KB_DOWN_KEYS[ keyCode ] ) delete X_KB_DOWN_KEYS[ keyCode ]; if( X_KB_CANCELED[ keyCode ] ) delete X_KB_CANCELED[ keyCode ]; - chrCode = 0; + if( !special ){ // keyCode から charCode を復帰する chrCode = X_KB_TRANSFOEM[ keyCode ]; if( !chrCode ) return cb; delete X_KB_TRANSFOEM[ keyCode ]; + } else + if( 42 <= special ){ + chrCode = special; // ie8で必要... Firefox でもテンキーの+-*/ で必要... + } else { + chrCode = 0; }; - + + console.log( keyCode + ' keyup ' + chrCode ); + cb |= this[ 'dispatch' ]( { type : 'keyup', keyCode : keyCode, @@ -159,7 +168,7 @@ var X_KB_SPECIALS = eval( // IE5- 対策 altKey : X_KB_DOWN_KEYS[ 18 ], metaKey : X_KB_DOWN_KEYS[ 224 ] } ); - + return cb; case X_EVENT_VIEW_ACTIVATE :