2016-02-05 6 views
5

私はキーボードプレスをシミュレートする方法を探しています(タイトルのように示唆しています)。私は周りを見回していると私は主にこれら2つのSOの質問を発見した:推奨されていない方法でキーボードプレスをシミュレートしますか?

問題のものとは、彼らの両方がMDNによると、それが推奨されていませんKeyboardEvent.initKeyboardEvent()イベントを使用することです。その廃止された関数なしで同じことを達成する別の方法はありますか?

私はChromeのTamperMonkey拡張機能を使用してYouTube用のスクリプトを作成しているので、これを知りたいと思います。このスクリプトは、[スペース]を押すと、Kをトリガーします。 Kは、YouTubeのトグル再生/一時停止ボタンです。

document.addEventListener("keydown", function(e) { 
    if(e.keyCode==32) { 
     e.preventDefault(); 
    } 
}, false); 

はまた、私は本当に純粋なJavaScriptのアプローチを探しています:私は以下のコードで完璧に働い[スペース]リスナーを持っています。

+3

便利。 MDNから: "Webアプリケーションは利用可能な場合はコンストラクタを使用する必要があります。" https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent – CollinD

+1

何をしようとしているのか説明できますか?その結果、より良い回答が得られます – mplungjan

+0

@mplungjanユーザーが特定の操作(ボタンをクリックするなど)をすると、この機能が起動され、キーボードの特定のキーが押されたとページが判断するようになります。 – Jaketr00

答えて

1

jQueryでこれを行うと、イベントが構築されます。

https://stackoverflow.com/a/3368599/3257830

あなたがイベントを作成したい場合は、イベントを送出し、オブジェクトを初期化します。おそらく

https://developer.mozilla.org/en-US/docs/Web/API/Event/Event

document.addEventListener("keypress", function(e) { 
 
    alert(e.which); 
 
}); 
 
var e = new Event("keypress"); 
 
e.which = 65; 
 
e.keyCode = 65; 
 
document.dispatchEvent(e);
<p id="r">Alerts on event</p>

+0

誰かがこれがダウン投票された理由を説明できますか?私は答えを守るのではなく、ただ学ぼうとしている。 – ketchupisred

+2

編集履歴を参照してください。答えが質問と完全に無関係だったので、下降声が出る可能性が高い –

+0

これは素晴らしいことですが、キー入力リスナの中に 'if(e.keyCode == 65) 'を追加した場合を除き、これは起動されていないようです。スクリプトでこれをテストし、それがまだ動作するかどうかを確認します。編集:それは動作していない、それは静かに失敗し、 'event.preventDefault()'は '[space]'が押されたときにページをスクロールさせないようになっていますが、 – Jaketr00

関連する問題