ブラウザーの標準的なイベント起動メカニズムについてはよく知っていますが、キーボードを介したカーソルと挿入ポイントのナビゲーションをシミュレートする JavaScript ライブラリーが必要です。特に、挿入ポイントを移動できるライブラリが必要ですが、たとえば、仮想矢印キーで移動中に仮想 Shift キーが「押された」場合、テキストの選択範囲の展開または折りたたみも処理します。そのようなクロスブラウザ JavaScript ライブラリは存在しますか?
これはブラウザ自動化ライブラリでの使用を意図しているため、Selenium などの提案は不適切です。さらに、可能であれば、jQuery などの大規模な JavaScript フレームワークに依存するライブラリは避けたいと考えています。最後に、これはページ内に挿入可能である必要があるため、JavaScript 以外のソリューションは私の要件では機能しません。
次のような HTML ページがあるとします。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>keyboard</title>
</head>
<body>
<input id="editor" value="hello world" />
</body>
</html>
JavaScriptで、次のようなものを呼び出せるようにしたい:
function moveCursor() {
var editor = document.getElementById("editor");
editor.focus();
// Hypothetical API here. This would need to be
// adjusted to be used with the actual library.
// Assume the pressKey() is defined as:
//
// pressKey(element, keyCode, isShiftPressed)
//
keyboardSimulator.pressKey(editor, keys.END);
keyboardSimulator.pressKey(editor, keys.LEFT, true);
keyboardSimulator.pressKey(editor, keys.LEFT, true);
}
この JavaScript 関数を呼び出した後、ページのフォーカスがエディター要素にあり、"hello world" 値の "ld" が選択されていることを期待します。