mozilla
Your Search Results

    KeyboardEvent

    KeyboardEvent オブジェクトは、ユーザのキー入力情報を提供します。 イベントタイプ、 (keydownkeypresskeyup) は、どういった操作が行われたのかを表します。

    注意: KeyboardEvent は、単にキーに発生した状況を示すだけです。もし、テキストの入力を知りたい場合、HTML5 input イベントを代わりに利用してください。例えば、ユーザがタブレットPCのような、手書き入力デバイスからテキストを入力した場合、キーイベントは生成されないかもしれません。

    Method overview

    boolean getModifierState(in DOMString keyArg);
    void initKeyboardEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in views::AbstractView viewArg, in DOMString charArg, in DOMString keyArg, in unsigned long locationArg, in DOMString modifiersListArg, in boolean repeat, in DOMString localeArg);

    Attributes

    Attribute Type Description
    altKey boolean Alt (Macでは、Option) キーが押されている時に発生したキーイベントで true になります。 読取専用。
    char DOMString

    そのキーで入力される文字列です。キーが文字を入力する場合、この値は、その文字を含んだ、空ではない Unicode 文字列になります。キーが文字を入力しない場合、空の文字列になります。詳細は、 key names and char values を参照してください。 読取専用。

    注意: もし、そのキーがマクロのように、複数の文字を入力する場合、この属性値は最初の文字だけではなく、全ての文字となります。

    Gecko note: Not yet implemented; see バグ 680830.

    現在、この属性は Gecko では実装されていません。

    charCode unsigned long

    そのキーで入力される文字の Unicode のコードポイントです。この属性は、 keypress イベントでのみ利用されます。char 属性値が複数の文字の場合、その最初の文字の Unicode のコードポイントになります。読取専用。

    警告: この属性は非推奨です。可能なら、char を代わりに利用すべきです。
    ctrlKey boolean Control キーが押されている時に発生したキーイベントで true になります。読取専用。
    key DOMString

    そのキーを表す値になります。もし、文字を入力する場合、この属性の値は char 属性と同じになります。それ以外の場合、Key values で定義されたキーの名前になります。もし、キーの名前を特定できなかった場合、"Unidentified" になります。詳細は、key names and char values を参照してください。読取専用。

    Gecko note: Not yet implemented; see バグ 680830.

    現在、この属性は Gecko では実装されていません。

    keyCode

    unsigned long

    ブラウザの動作しているシステム、または、ブラウザの実装に依存した、押されたキーを表す、一意の数値になります。この値は、文字を入力するキーの場合、ASCII (RFC 20) のコードポイントか、Windows 1252 のコードポイントをそのまま利用している場合もあります。Gecko が利用している値については、Virtual key codes を参照してください。もし、キーを特定できない場合、この値は0になります。読取専用。

    警告: 現在、この属性は Gecko では実装されていません。
    locale DOMString

    キーボードのロケールを表す文字列です。ブラウザや、デバイスが、ロケールを認識できない場合、空の文字列になります。読取専用。

    注意: これは、入力中のテキストのロケールを示すものではありません。ユーザは、異なる言語を入力する際にも、ひとつのキーボードレイアウトを利用することがあります。

    location DOM level 3

    unsigned long

    キーボードや、その他の入力機器上での、キーの場所を表します。下記の、Key location constants を参照してください。読取専用。

    metaKey boolean Meta (Macでは、Command) キーが押されている時に発生したキーイベントで true になります。読取専用。
    repeat boolean

    キーボードのオートリピート、またはそれに似た機能で、キーを押しっぱなしにした状態で入力された場合、true になります。読取専用。

    Gecko note: Not yet implemented; see バグ 600117.

    現在、この属性は Gecko では実装されていません。

    shiftKey boolean Shift キーが押されている時に発生したキーイベントで true になります。読取専用。
    which unsigned long

    ブラウザの動作しているシステム、または、ブラウザの実装に依存した、押されたキーを表す、一意の数値になります。この値は、 keyCode と同じであることが多いです。読取専用。

    警告: 現在、この属性は Gecko では実装されていません。

    Constants

    Virtual key codes

    非推奨
    This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Do not use it in old or new projects. Pages or Web apps using it may break at any time.

    以下の定数は、Geckoで、非推奨の keyCode 属性で仮想キーコードとして利用されているものです。下の図は標準的な、ANSI US keyboard です。Mac や、多くの PC のキーボードは、文字入力可能なキーについては同じレイアウトとなっています。他のキーについても、似たレイアウトでしょう。

    Gecko 15 (Firefox 15.0 / Thunderbird 15.0 / SeaMonkey 2.12) 以降では、以下のルールに基づいて、文字入力可能なキーのキーコード値を決定しています。

    1. Windows で、押されたキーのネイティブキーコードが、a から z か、0 から 9 の場合、これにあったキーコードを用います。
    2. Mac で、押されたキーのネイティブキーコードが、0 から 9 の場合、これにあったキーコードを用います。
    3. 押されたキーが、モディファイアキーが押されていない場合に、ASCII アルファベットか、数字を一文字入力する場合、それにあったキーコードを用います。
    4. 押されたキーが、Shift キーが押されている場合に、ASCII アルファベットか、数字を一文字入力する場合、それにあったキーコードを用います。
    5. 押されたキーが、モディファイアキーが押されていない場合に、それ以外の ASCII 文字 (記号等) を入力する場合、それにあったキーコードを用います。
    6. 押されたキーが、Shift キーが押されている場合に、ASCII の記号文字を入力する場合、それにあったキーコードを用います。
    7. それ以外の場合、つまり、ASCII の範囲にない、Unicode 文字を入力する場合、
      1. そのキーボードレイアウトが、ASCII 文字を入力するレイアウトの場合 (ASCII capable keyboard layout と呼びます)、0 を用います。
      2. それ以外のキーボードレイアウトの場合、そのシステムにインストールされた、最も優先順位の高い、ASCII 文字を入力するレイアウト (代替キーボードレイアウト) を探し、利用します。
        1. 押されたキーが、その代替キーボードレイアウトで、ASCII のアルファベットか、数字を入力する場合、それにあったキーコードを用います。
        2. それ以外の場合、0 を用います。
    注意: Web 開発者は、文字入力が可能なキーの、keycode 属性を、keydown やお、keyup イベントのハンドラで利用すべきではありません。上述のように、キーコードは、そのキーによってどのような文字が入力されるのかを判断することには利用できません。特に、Shift キーや、 AltGr キーが押されている場合には顕著です。Web 開発者がショートカットキーを実装する場合、keypress イベントを利用する方が、少なくとも Gecko 上では理にかなっています。Gecko Keypress Event もあわせて読んでみて下さい。
    定数 解説
    DOM_VK_CANCEL 3 Cancel キー。
    DOM_VK_HELP 6 Help キー。
    DOM_VK_BACK_SPACE 8 Backspace キー。
    DOM_VK_TAB 9 Tab キー。
    DOM_VK_CLEAR 12 NumLock がロックされていない場合の、テンキーの、"5" キー。もしくは、Mac では、PC のキーボードの、NumLock キーの位置にある、clear キー。
    DOM_VK_RETURN 13 Return/enter キー。
    DOM_VK_ENTER 14 予約されていますが、実際には利用されていません。
    DOM_VK_SHIFT 16 Shift キー。
    DOM_VK_CONTROL 17 Control キー。
    DOM_VK_ALT 18 Alt (Macでは、Option) キー。
    DOM_VK_PAUSE 19 Pause キー
    DOM_VK_CAPS_LOCK 20 CapsLock キー。
    DOM_VK_ESCAPE 27 Escape キー。
    DOM_VK_SPACE 32 Space キー。
    DOM_VK_PAGE_UP 33 Page Up キー。
    DOM_VK_PAGE_DOWN 34 Page Down キー。
    DOM_VK_END 35 End キー。
    DOM_VK_HOME 36 Home キー。
    DOM_VK_LEFT 37 左矢印キー。
    DOM_VK_UP 38 上矢印キー。
    DOM_VK_RIGHT 39 右矢印キー。
    DOM_VK_DOWN 40 下矢印キー。
    DOM_VK_SELECT 41  
    DOM_VK_PRINT 42  
    DOM_VK_EXECUTE 43  
    DOM_VK_PRINTSCREEN 44 Print Screen キー。
    DOM_VK_INSERT 45 Ins(ert) キー。
    DOM_VK_DELETE 46 Del(ete) キー。
    DOM_VK_0 48  
    DOM_VK_1 49  
    DOM_VK_2 50  
    DOM_VK_3 51  
    DOM_VK_4 52  
    DOM_VK_5 53  
    DOM_VK_6 54  
    DOM_VK_7 55  
    DOM_VK_8 56  
    DOM_VK_9 57  
    DOM_VK_COLON 58 コロン (":") キー。
    DOM_VK_SEMICOLON 59 セミコロン (";") キー。
    DOM_VK_LESS_THAN 60 不等号・小なり ("<") キー。
    DOM_VK_EQUALS 61 等号 ("=") キー。
    DOM_VK_GREATER_THAN 62 不等号・大なり (">") キー。
    DOM_VK_QUESTION_MARK 63 クエスチョンマーク ("?") キー。
    DOM_VK_AT 64 アットマーク ("@") キー。
    DOM_VK_A 65  
    DOM_VK_B 66  
    DOM_VK_C 67  
    DOM_VK_D 68  
    DOM_VK_E 69  
    DOM_VK_F 70  
    DOM_VK_G 71  
    DOM_VK_H 72  
    DOM_VK_I 73  
    DOM_VK_J 74  
    DOM_VK_K 75  
    DOM_VK_L 76  
    DOM_VK_M 77  
    DOM_VK_N 78  
    DOM_VK_O 79  
    DOM_VK_P 80  
    DOM_VK_Q 81  
    DOM_VK_R 82  
    DOM_VK_S 83  
    DOM_VK_T 84  
    DOM_VK_U 85  
    DOM_VK_V 86  
    DOM_VK_W 87  
    DOM_VK_X 88  
    DOM_VK_Y 89  
    DOM_VK_Z 90  
    DOM_VK_CONTEXT_MENU 93  
    DOM_VK_NUMPAD0 96 テンキーの 0 キー。
    DOM_VK_NUMPAD1 97 テンキーの 1 キー。
    DOM_VK_NUMPAD2 98 テンキーの 2 キー。
    DOM_VK_NUMPAD3 99 テンキーの 3 キー。
    DOM_VK_NUMPAD4 100 テンキーの 4 キー。
    DOM_VK_NUMPAD5 101 テンキーの 5 キー。
    DOM_VK_NUMPAD6 102 テンキーの 6 キー。
    DOM_VK_NUMPAD7 103 テンキーの 7 キー。
    DOM_VK_NUMPAD8 104 テンキーの 8 キー。
    DOM_VK_NUMPAD9 105 テンキーの 9 キー。
    DOM_VK_MULTIPLY 106 テンキーの * キー。
    DOM_VK_ADD 107 テンキーの + キー。
    DOM_VK_SEPARATOR 108  
    DOM_VK_SUBTRACT 109 テンキーの - キー。
    DOM_VK_DECIMAL 110 テンキーの、小数点キー。
    DOM_VK_DIVIDE 111 テンキーの / キー。
    DOM_VK_F1 112 F1 キー。
    DOM_VK_F2 113 F2 キー。
    DOM_VK_F3 114 F3 キー。
    DOM_VK_F4 115 F4 キー。
    DOM_VK_F5 116 F5 キー。
    DOM_VK_F6 117 F6 キー。
    DOM_VK_F7 118 F7 キー。
    DOM_VK_F8 119 F8 キー。
    DOM_VK_F9 120 F9 キー。
    DOM_VK_F10 121 F10 キー。
    DOM_VK_F11 122 F11 キー。
    DOM_VK_F12 123 F12 キー。
    DOM_VK_F13 124 F13 キー。
    DOM_VK_F14 125 F14 キー。
    DOM_VK_F15 126 F15 キー。
    DOM_VK_F16 127 F16 キー。
    DOM_VK_F17 128 F17 キー。
    DOM_VK_F18 129 F18 キー。
    DOM_VK_F19 130 F19 キー。
    DOM_VK_F20 131 F20 キー。
    DOM_VK_F21 132 F21 キー。
    DOM_VK_F22 133 F22 キー。
    DOM_VK_F23 134 F23 キー。
    DOM_VK_F24 135 F24 キー。
    DOM_VK_NUM_LOCK 144 NumLock キー。
    DOM_VK_SCROLL_LOCK 145 ScrollLock キー。
    DOM_VK_CIRCUMFLEX 160 サーカムフレックス ("^") キー。
    DOM_VK_EXCLAMATION 161 エクスクラメーションマーク ("!") キー。
    DOM_VK_DOUBLE_QUOTE 162 ダブル・クォーテーション (""") キー。
    DOM_VK_HASH 163 ハッシュ ("#") キー。
    DOM_VK_DOLLAR 164 ドル記号 ("$") キー。
    DOM_VK_PERCENT 165 パーセント記号 ("%") キー。
    DOM_VK_AMPERSAND 166 アンパサンド ("&") キー。
    DOM_VK_UNDERSCORE 167 アンダーバー ("_") キー。
    DOM_VK_OPEN_PAREN 168 開き丸括弧 ("(") キー。
    DOM_VK_CLOSE_PAREN 169 閉じ丸括弧 (")") キー。
    DOM_VK_ASTERISK 170 アスタリスク ("*") キー。
    DOM_VK_PLUS 171 可算記号 ("+") キー。
    DOM_VK_PIPE 172 パイプ ("|") キー。
    DOM_VK_HYPHEN_MINUS 173 ハイフン・減算記号 ("-") キー。
    DOM_VK_OPEN_CURLY_BRACKET 174 開き中括弧 ("{") キー。
    DOM_VK_CLOSE_CURLY_BRACKET 175 閉じ中括弧 ("}") キー。
    DOM_VK_TILDE 176 チルダ ("~") キー。
    DOM_VK_COMMA 188 カンマ (",") キー。
    DOM_VK_PERIOD 190 ピリオド (".") キー。
    DOM_VK_SLASH 191 スラッシュ ("/") キー。
    DOM_VK_BACK_QUOTE 192 バック・クォート ("`") キー。
    DOM_VK_OPEN_BRACKET 219 開き角括弧 ("[") キー。
    DOM_VK_BACK_SLASH 220 バックスラッシュ・円記号 ("\") キー。
    DOM_VK_CLOSE_BRACKET 221 閉じ角括弧 ("]") キー。
    DOM_VK_QUOTE 222 シングル・クォーテーション (''') キー。
    DOM_VK_META 224 Linux の Meta キー、もしくは、Mac の Command キー。
    DOM_VK_ALTGR 225 Linux の AltGr キー。
    DOM_VK_WIN 91 Windows の Windows ロゴキー、もしくは、Linux の Super か Hyper キー。
    DOM_VK_KANA 21 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_HANGUL 21 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_EISU 22 Mac の日本語用キーボードの、"英数" キー。
    DOM_VK_JUNJA 23 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_FINAL 24 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_HANJA 25 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_KANJI 25 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_CONVERT 28 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_NONCONVERT 29 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_ACCEPT 30 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_MODECHANGE 31 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_SELECT 41 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_PRINT 42 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_EXECUTE 43 Linux版 では、Gecko 4.0 以降でサポートしています。
    DOM_VK_SLEEP 95 Linux版 では、Gecko 4.0 以降でサポートしています。

    Key location constants

    以下の定数は、キーイベントの、location 属性で利用されます。 DOM level 3

    定数 解説
    DOM_KEY_LOCATION_STANDARD 0 そのキーは、左右が区別されるキーでもなければ、テンキー上のキーでもありません。
    DOM_KEY_LOCATION_LEFT 1 そのキーは、左側のキーです。例えば、一般的な PC 用キーボードで、左側の Control キーが押された場合の、キーイベントの location 属性がこの値になります。この値は、そのキーが、二つ以上、キーボードに存在する場合にのみ用いられます。
    DOM_KEY_LOCATION_RIGHT 2 そのキーは、左側のキーです。例えば、一般的な PC 用キーボードで、右側の Control キーが押された場合の、キーイベントの location 属性がこの値になります。この値は、そのキーが、二つ以上、キーボードに存在する場合にのみ用いられます。
    DOM_KEY_LOCATION_NUMPAD 3

    そのキーは、テンキー上にあるか、もしくは、そのイベントは、テンキー上のキーの仮想キーコードで生成されたネイティブイベントを元に生成されました。

    注意: NumLock がロックされている場合、テンキー上のキーは、Gecko では常に DOM_KEY_LOCATION_NUMPAD になります。また、NumLock がロックされていない場合、実際にテンキーがあるキーボードの、テンキー上にあるキーは、Gecko では常に、DOM_KEY_LOCATION_NUMPAD となります。これに対して、キーボードが実際にはテンキーを独立して持たない場合、例えば、ノート PC のキーボードでは、一部のキーが、NumLock をロックした時にのみ、テンキーのキーとなります。このようなキーの場合、location 属性の値は、そのキーの状態に依存します。つまり、そのようなキーでは、DOM_KEY_LOCATION_NUMPAD 以外であることがあります。
    注意: NumLock キー自身のキーイベントは、DOM_KEY_LOCATION_STANDARD です。これは、Gecko と、Internet Explorer、共通の動作です。
    DOM_KEY_LOCATION_MOBILE 4

    そのキーは、モバイルデバイス上にあります。これは、実際にそのキーが、物理的なキーであるか、ソフトウェアキーボード上のキーであるかは関係ありません。

    注意: Android, Maemo, and Boot to Gecko 上の Gecko は、常に DOM_KEY_LOCATION_MOBILE を用います。
    DOM_KEY_LOCATION_JOYSTICK 5

    そのキーは、ゲーム用のコントローラ上のボタンか、モバイルデバイスの、ジョイスティック上のボタンです。

    注意: Gecko は、DOM_KEY_LOCATION_JOYSTICK を利用していません (Android 版 Gecko のバグは、バグ 756504 です)。

    Methods

    getModifierState()

    指定したモディファイアキーの状態を返します。 DOM level 3

    boolean getModifierState(
      in DOMString keyArg
    );
    
    Parameters
    keyArg
    確認したいモディファイアキーの名前を指定します。この値は、ブラウザ独自の値か、"Alt"、"AltGraph"、"CapsLock"、"Control"、"Fn"、"Meta"、"NumLock"、"ScrollLock", "Shift"、"SymbolLock"、"OS" のいずれかひとつです。IE9 は、"ScrollLock"の代わりに、"Scroll" を、"OS" の代わりに、"Win" を利用しています。これらの、古い仕様書草案にあった名前を Gecko で利用した場合は、getModifierState() は常に、false を返します。
    Return value

    指定したモディファイアキーがアクティブだった場合、true が、それ以外の場合は、false が返ります。

    Gecko では、getModifierState() がどのような場合に true を返すのか?
      Windows Linux (GTK) Mac
    "Alt" Alt キーか、AltGr キーが押されている場合 Alt キーが押されている場合 option キーが押されている場合
    "AltGraph"

    Alt キーと、Ctrl キーの両方が押されている場合、もしくは、AltGr キーが押されている場合

    AltGr キーが押されている場合 option キーが押されている場合
    "CapsLock" CapsLock の LED が点灯している間
    "Control" Ctrl キーか、AltGr キーが押されている場合 Ctrl キーが押されている場合 control キーが押されている場合
    "Fn" サポートされていません
    "Meta" サポートされていません Meta キーが押されている場合 command キーが押されている場合
    "NumLock" NumLock の LED が点灯している間 テンキー上のキーが押された時のキーイベントのみ
    "ScrollLock" ScrollLock の LED が点灯している間 ScrollLock の LED が点灯している間、ただし、一般的なディストリビューションでは初期設定のままでは対応していません サポートされていません
    "Shift" Shift キーが押されている場合
    "SymbolLock" サポートされていません
    "OS" Windows ロゴキーが押されている場合 Super キー、もしくは、 Hyper キーが押されている場合 (一般的にこれらのキーは、Windows ロゴキーに割り当てられています) サポートされていません

    これ以外のプラットフォームでは、"Alt"、"Control"、"Shift" は大抵、サポートされています。

    Gecko では、全てのモディファイアが、untrusted イベントではサポートされています。これはプラットフォームに依存しません。

    initKeyboardEvent()

    非推奨
    This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Do not use it in old or new projects. Pages or Web apps using it may break at any time.

    キーボードイベントオブジェクトの属性を初期化します。このメソッドは、古い、DOM Level 3 Events の草案で提案されていましたが、後に非推奨となりました。Gecko ではこのメソッドを実装しませんが、似たメソッドが存在しています。initKeyEvent() を参照してください。.

    void initKeyboardEvent(
      in DOMString typeArg,
      in boolean canBubbleArg,
      in boolean cancelableArg,
      in views::AbstractView viewArg,
      in DOMString charArg,
      in DOMString keyArg,
      in unsigned long locationArg,
      in DOMString modifiersListArg,
      in boolean repeat,
      in DOMString localeArg
    );
    
    Parameters
    typeArg
    キーボードイベントのタイプを指定します。keydownkeypresskeyup のいずれかひとつを指定します。
    canBubbleArg
    イベントがバブルフェーズを持つかどうかを指定します。
    cancelableArg
    イベントがキャンセル可能かどうかを指定します。
    viewArg
    ?
    charArg
    char 属性の値を指定します。
    keyArg
    key 属性の値を指定します。
    locationArg
    location 属性の値を指定します。
    modifiersListArg
    アクティブなモディファイアキーの名前を、空白区切りのリストで指定します。例えば、"Control Shift" であれば、ユーザが、Control キーと、Shift キーを押した状態でそのキーイベントが生成されたことになります。
    repeatArg
    repeat 属性の値を指定します。
    localeArg
    locale 属性の値を指定します。

    Processing of key events

    キーイベントには、keydownkeypress、keyup の三種類があります。大半のキーにおいて、Gecko は以下の手順でキーイベントを生成します。

    1. キーが押された時、keydown イベントが発生します。
    2. そのキーがモディファイアキーでは無い場合、keypress イベントが発生します。
    3. キーが解放された時、keyup イベントが発生します。

    Special cases

    CapsLock、NumLock、ScrollLock キーのように、キーボードの LED の状態を切り替えるキーの場合、Windows と Linux では、keydownkeyup イベントのみが発生します。ただし、Linux では、Firefox 12 以前は、keypress イベントも発生していたことに注意してください。

    一方、Mac では、Caps Lock キーが押された時に、keydown イベントのみが発生します。これは、プラットフォーム固有のイベントモデルによる制限が原因です。 NumLock は、(2007 年モデルか、それ以前の) MacBook ではサポートされていました。しかし、最近では、外付けキーボードを接続したとしても、サポートしていません。NumLock キーをもつ、古い MacBook では、NumLock キーの操作は、いかなるキーイベントも発生しません。加えて、Gecko は、F14 キーをもつ、外付けキーボードを接続した場合に、ScrollLock キーとしてそのキーを扱いますが、このキーのイベントでは、keypress イベントが発生します。これらの、他のプラットフォームと違った挙動はバグです。 バグ 602812 を参照してください。

    Auto-repeat handling

    キーを押し続けた場合、オートリピート機能による連続入力になります。この状況では、以下のような順序でイベントが発生します。

    1. keydown
    2. keypress
    3. keydown
    4. keypress
    5. <<ユーザがキーを離すまで、以下、繰り返し>>
    6. keyup

    これは、DOM Level 3 Events 仕様書で定義されている動作です。しかし、以下のような例外があることに注意してください。

    Auto-repeat on some GTK environments such as Ubuntu 9.4

    いくつかの GTK ベースの環境では、オートリピート時にも、ネイティブのキーリリースイベントが生成されます。残念ながら、Gecko はこのような環境では、オートリピートによる入力であるかどうかを判断することができません。このような環境では以下の順序でイベントが発生します。

    1. keydown
    2. keypress
    3. keyup
    4. keydown
    5. keypress
    6. keyup
    7. <<ユーザがキーを離すまで、以下、繰り返し>>
    8. keyup

    このため、このような環境では、残念ながら、Web コンテンツも、オートリピートによる入力なのかどうかを判断することはできません。

    Auto-repeat handling prior to Gecko 4.0

    Gecko 4.0 より古いバージョンでは、キーイベントの生成方法は、プラットフォーム間で統一感のないものでした。

    Windows
    オートリピートによる入力時の動作は、Gecko 4.0 以降と同じです。
    Mac
    最初の keydown イベントの後、keypress イベントのみが、keyup イベントが発生するまで繰り返されていました。つまり、二回目以降の keydown イベントは繰り返し、生成されていませんでした。
    Linux
    その挙動は、プラットフォーム側の動作に依存していました。そのため、Windows のようにも、 Mac のようにもイベントが発生していた可能性があります。

    Key names and Char values

    Windows における、キー名と、char 属性の値
    Virtual-Key Codes IE 9
    VK_LBUTTON (0x01) "Unidentified" null
    VK_RBUTTON (0x02) "Unidentified" null
    VK_CANCEL (0x03) "" 0x03
    VK_MBUTTON (0x04) "Unidentified" null
    VK_XBUTTON1 (0x05) "Unidentified" null
    VK_XBUTTON2 (0x06) "Unidentified" null
    VK_BACK (0x08) "Backspace" 0x08
    VK_TAB (0x09) "Tab" 0x09
    VK_CLEAR (0x0C) "Clear" null
    VK_RETURN (0x0D) "Enter" keydown 時に 0x0A
    keypress 時に 0x0D
    VK_SHIFT (0x10) "Shift" null
    VK_CONTROL (0x11) "Control" null
    VK_MENU (0x12) "Alt" null
    VK_PAUSE (0x13) "Pause" null
    VK_CAPITAL (0x14) "CapsLock" null
    VK_KANA,
    VK_HANGUEL,
    VK_HANGUL (0x15)
    "KanaMode" null
    VK_JUNJA (0x17) "JunjaMode" null
    VK_FINAL (0x18) "HanjaMode" null
    VK_HANJA,
    VK_KANJI (0x19)
    "KanjiMode" null
    VK_ESCAPE (0x1B) "Esc" 0x1B
    VK_CONVERT (0x1C) "Convert" null
    VK_NONCONVERT (0x1D) "Nonconvert" null
    VK_ACCEPT (0x1E) "Accept" null
    VK_MODECHANGE (0x1F) "ModeChange" null
    VK_SPACE (0x20) "Spacebar" 実際に入力される文字
    VK_PRIOR (0x21) "PageUp" null
    VK_NEXT (0x22) "PageDown" null
    VK_END (0x23) "End" null
    VK_HOME (0x24) "Home" null
    VK_LEFT (0x25) "Left" null
    VK_UP (0x26) "Up" null
    VK_RIGHT (0x27) "Right" null
    VK_DOWN (0x28) "Down" null
    VK_SELECT (0x29) "Select" null
    VK_PRINT (0x2A) "Unidentified" null
    VK_EXECUTE (0x2B) "Execute" null
    VK_SNAPSHOT (0x2C) "PrintScreen" null
    VK_INSERT (0x2D) "Insert" null
    VK_DELETE (0x2E) "Del" null
    VK_HELP (0x2F) "Help" null
    VK_LWIN (0x5B) "Win" null
    VK_RWIN (0x5C) "Win" null
    VK_APPS (0x5D) "Apps" null
    VK_SLEEP (0x5F) "Unidentified" null
    VK_NUMPAD0 (0x60)VK_NUMPAD9 (0x69) "0" ~ "9" "0" ~ "9"
    VK_MULTIPLY (0x6A) "Multiply" "*"
    VK_ADD (0x6B) "Add" "+"
    VK_SEPARATOR (0x6C) "Separator" null
    VK_SUBTRACT (0x6D) "Subtract" "-"
    VK_DECIMAL (0x6E) "Decimal" "."
    VK_DIVIDE (0x6F) "Divide" "/"
    VK_F1 (0x70)VK_F24 (0x87) "F1" ~ "F24" null
    VK_NUMLOCK (0x90) "NumLock" null
    VK_SCROLL (0x91) "Scroll" null
    VK_LSHIFT (0xA0) "Shift" null
    VK_RSHIFT (0xA1) "Shift" null
    VK_LCONTROL (0xA2) "Control" null
    VK_RCONTROL (0xA3) "Control" null
    VK_LMENU (0xA4) "Alt" null
    VK_RMENU (0xA5) "Alt" null
    VK_BROWSER_BACK (0xA6) "BrowserBack" null
    VK_BROWSER_FORWARD (0xA7) "BrowserForward" null
    VK_BROWSER_REFRESH (0xA8) "BrowserRefresh" null
    VK_BROWSER_STOP (0xA9) "BrowserStop" null
    VK_BROWSER_SEARCH (0xAA) "BrowserSearch" null
    VK_BROWSER_FAVORITES (0xAB) "BrowserFavorites" null
    VK_BROWSER_HOME (0xAC) "BrowserHome" null
    VK_VOLUME_MUTE (0xAD) "VolumeMute" null
    VK_VOLUME_DOWN (0xAE) "VolumeDown" null
    VK_VOLUME_UP (0xAF) "VolumeUp" null
    VK_MEDIA_NEXT_TRACK (0xB0) "MediaNextTrack" null
    VK_MEDIA_PREV_TRACK (0xB1) "MediaPreviousTrack" null
    VK_MEDIA_STOP (0xB2) "MediaStop" null
    VK_MEDIA_PLAY_PAUSE (0xB3) "MediaPlayPause" null
    VK_LAUNCH_MAIL (0xB4) "LaunchMail" null
    VK_LAUNCH_MEDIA_SELECT (0xB5) "SelectMedia" null
    VK_LAUNCH_APP1 (0xB6) "LaunchApplication1" null
    VK_LAUNCH_APP2 (0xB7) "LaunchApplication2" null
    VK_PROCESSKEY (0xE5) "Unidentified" (IME を経由せず、直接テストした結果) null
    VK_PACKET (0xE7) 0x00 (null 文字が1文字目に。SendInput() API を利用せず、直接テストした結果) null
    VK_ATTN (0xF6) "Attn" null
    VK_CRSEL (0xF7) "Crsel" null
    VK_EXSEL (0xF8) "Exsel" null
    VK_EREOF (0xF9) "EraseEof" null
    VK_PLAY (0xFA) "Play" null
    VK_ZOOM (0xFB) "Zoom" null
    VK_NONAME (0xFC) "Unidentified" null
    VK_PA1 (0xFD) "Unidentified" null
    VK_OEM_CLEAR (0xFE) "Clear" null

    Specification

    DOM 3 Events: KeyboardEvent

    Example

    <!DOCTYPE html>
    <html>
    <head>
    <script>
    var metaChar = false;
    var exampleKey = 16;
    
    function keyEvent(event) {
      var key = event.keyCode || event.which;
      var keychar = String.fromCharCode(key);
      if (key == exampleKey) {
        metaChar = true;
      }
      if (key != exampleKey) {
        if (metaChar) {
          alert("Combination of metaKey + " + keychar);
          metaChar = false;
        } else {
          alert("Key pressed " + key);
        }
      }
    }
    
    function metaKeyUp (event) {
      var key = event.keyCode || event.which;
    
      if (key == exampleKey) {
        metaChar = false;
      }
    }
    </script>
    </head>
    
    <body onkeydown="keyEvent(event)" onkeyup="metaKeyUp(event)">
    </body>
    </html>
    

    ドキュメントのタグと貢献者

    Contributors to this page: Masayuki, fscholz
    最終更新者: Masayuki,