JavascriptではIMEにキーを送れない
KeyboardEventに色々変数を送ってもキーボード入力代行 (javascript)出来ないみたい
おそらくkeydown eventではIMEに情報を送れないんだと思う
逆に、CompositionEventを発行すれば、IMEにdataを送れる?
たぶん望み薄
e.dataがIMEに入力された値であるということは、IMEがcompositionupdate eventをweb browserに発行しているということ。
逆の流れがないと考えられる以上、IMEを制御するのは不可能では?
試したもの
keydown eventを使ったもの
scrapbox-keyboard-emulationのpressにisComposingpropertyを設定する
以下のcode
code:js
// IMEが有効のときのキー入力
// this.cursorはscrapboxの #text-input
pressOnIME(key) {
this.cursor.dispatchEvent(new KeyboardEvent('keydown', {
bubbles: true,
cancelable: true,
key: 'Process',
keyCode: 229,
code: key,
isComposing: true,}));
}
codeにkeyを渡しても無意味?
KeyboardEvent.codeは物理キーの印字を示すだけで、softwareの処理には影響を与えないんだと思う
References
どれもIMEの状態を検出する方法
IMEにキーを渡す方法は出てこなかった
InputEvent#isComposing とIME有効/無効の検出 · GitHub
JavaScript で日本語の変換確定とその他のリターンを識別する方法 | gotohayato.com
#2020-11-26