1

ブラウザーの標準的なイベント起動メカニズムについてはよく知っていますが、キーボードを介したカーソルと挿入ポイントのナビゲーションをシミュレートする 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" が選択されていることを期待します。

4

2 に答える 2

1

実際、これらのことを行うライブラリがあります

それらの 1 つは Syn と呼ばれ、bitovi FuncUnit に含まれています。

http://funcunit.com

https://github.com/bitovi/syn

于 2014-03-15T14:02:18.063 に答える
0

そのようなライブラリは存在しません。これが実際に許可された場合、これは巨大なセキュリティ ホールになります。できる唯一のことは、キーストロークをトラップして、それらに基づいて操作することです。たとえば、トラップされたときに JavaScript で作成した特別な機能をトリガーする特別なホットキーを作成します。

(ところで: キーストロークをコントロールに送信するように見える Lastpass や Lazarus などの一部の拡張機能は、実際には text プロパティを設定するだけです。)

于 2012-09-14T15:21:22.860 に答える