KeyCommandJS
簡易コマンド実装ライブラリー
ダウンロード
リファレンス
KeyCommand.set(sequence, done)
コマンドを登録。
成功時はコマンド ID (number)、失敗時は undefined を取得。
sequence: string- シーケンスをキーごとに半角スペースで区切った文字列
done: function(keyStrings: string[])- キー入力がシーケンスと完全に一致したときに実行する処理
KeyCommand.set(sequence, { done, pass, fail, exclude, listen })
コマンドを詳細に登録。
成功時はコマンド ID (number)、失敗時は undefined を取得。
sequence: string- シーケンスをキーごとに半角スペースで区切った文字列
done: function(keyStrings: string[])- キー入力がシーケンスと完全に一致したときに実行する処理
pass?: function(keyStrings: string[], index: number)- キー入力がシーケンスの先頭から一致しているときに実行する処理。省略した場合は
undefined fail?: function(keyStrings: string[], index: number)- キー入力がシーケンスの先頭から一致しなくなったときに実行する処理。省略した場合は
undefined exclude?: string- フォーカスがあるときにキー入力とシーケンスの一致を判定しない要素。CSS セレクターで記述。省略した場合は
:not(html):not(body) listen?: boolean- コマンドの状態を設定するフラグ。有効にする場合は
true、無効にする場合はfalse。省略した場合はtrue
KeyCommand.clear(id)
コマンドを削除。
id: number- コマンド ID
KeyCommand.enable(id)
コマンドを有効化。
id: number- コマンド ID
KeyCommand.disable(id)
コマンドを無効化。
id: number- コマンド ID
KeyCommand.reset(id)
キー入力とシーケンスの一致状況をリセット。
id: number- コマンド ID
KeyCommand.version()
バージョン (string) を取得。
シーケンスの使用可能キー
- 0 - 9
- A - Z
- LEFT | ←
- UP | ↑
- RIGHT | →
- DOWN | ↓
- BACKSPACE | BS
- TAB
- ENTER | RETURN
- SHIFT
- CONTROL | CTRL
- ALT
- CAPSLOCK
- ESCAPE | ESC
- SPACE
- PAGEUP | PGUP
- PAGEDOWN | PGDN
- END
- HOME
- INSERT | INS
- DELETE | DEL
- F1 - F12
使用例
- 基本
-
KeyCommand.set('H E L L O', function () { alert('Hello!'); }); - キー入力とシーケンスの一致状況に応じて動作
-
KeyCommand.set('↑ ↑ ↓ ↓ ← → ← → B A', { done: function (keyStrings) { alert('"' + keyStrings.join(' ') + '" is KONAMI command'); }, pass: function (keyStrings, index) { console.log('keyStrings[' + index + ']: ' + keyStrings[index]); }, fail: function (keyStrings, index) { console.log('Fail...'); } }); - 1 回だけ動作
-
const id1 = KeyCommand.set('O N C E', function () { KeyCommand.clear(id1); alert('ONCE command has been cleared'); }); - 有効化と無効化
-
var id2 = KeyCommand.set('M O D E', function () { KeyCommand.disable(id2); KeyCommand.enable(id3); console.log('MODE command = disable / ESC key = enable'); }); var id3 = KeyCommand.set('ESC', { done: function () { KeyCommand.disable(id3); KeyCommand.enable(id2); console.log('MODE command = enable / ESC key = disable'); }, listen: false }); - 特定の要素を除外
-
KeyCommand.set('SPACE', { done: function () { console.log('Focus on non-submittable element'); }, exclude: 'button, input, keygen, object, select, textarea' });
注意事項
- シーケンスの使用可能キーにおける大文字と小文字は不問。例えば UP と up は同一として処理
- 数字キーとテンキーの 0 - 9 は標準キーの 0 - 9 として処理
更新履歴
v2.20160829
- フォーカスがあるときにキー入力とシーケンスの一致を判定しない要素を設定するための引数
excludeをKeyCommand.set()に追加。後方互換のためデフォルト値は:not(html):not(body)に設定
v1.20140629
- 新規作成