私が望むのは、<input>
フィールドはJavaScriptを使用します。
私は次のコードを持っています:
var press = jQuery.Event("keydown");
press.ctrlKey = false;
press.which = 65;
$("#test").trigger(press);
しかし、ページをロードすると、#test
入力フィールドには入力された文字がありません。「65」のキーコードは「A」を表しますが、「A」の入力はありません。
基本的に私が欲しいのは、Greasemonkeyを使用してWebサイトに自動的に入力することです。
これを行うために使用できるアイデアやライブラリを教えてください。
どうもありがとう!
キーイベントを送信することができ、それらをリッスンしているものはすべてそれらを取得しますが、入力を変更しないため、文字A
は表示されません、 例えば。これはほとんどセキュリティ上の問題です。 "手動でイベントを発生させる" を参照してください。
そのため、文字を表示する場合は、キーイベントを送信するときに入力値を変更する必要があります。そのためのjQueryプラグインがあります。 "The $.fn.sendkeys
Plugin" を参照してください。
<input>
がユーザーが適用したキー、キーイベント、およびそのプラグインにどのように反応するかは、 this jsFiddle で確認できます。 =。
参考までに、これはそのjsFiddleの主要なコードです。
$("button").click ( function (zEvent) {
if (zEvent.target.id == "simA_plain") {
console.log ("Send Plain key event");
var keyVal = 65;
$("#eventTarg").trigger ( {
type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
} );
}
else {
console.log ("Use the Plugin to simulate a keystroke");
$("#eventTarg").sendkeys ("B") ;
}
} );
「<input>
で入力をシミュレートする」だけの場合、そのプラグインで十分です。ただし、あなたが何をしようとしているかによって本当に何をしようとしているかによって、次の1つ以上を実行する必要があります。
keydown
イベントを送信します(ページのjavascriptがトリガーする場合)。change
イベントなどを送信します。unsafeWindow
、および/または@grant none
モードを使用します。