2017-09-13 14 views
2

私は人気のあるブラウザゲームAgar.ioのコントロールを変更するクロム拡張を作成しようとしています。クイックサマリー、ゲームでは、分割アクションを実行します。私は同じアクションを実行したいが、スペースの代わりにDを押す。拡張機能は正常に動作します。 Dが押され、私のsplit()関数が呼び出されたことを検出します。アラートがポップアップするが、実際のゲームアクションは実行されないので、私はこれを知っている。私は周りを見て、さまざまな方法を試したが、何も動作していない。以下は私のJSファイルです。JSのキー押しをシミュレートする方法は?

window.addEventListener('keydown', keydown); 

function keydown(event) { 
    if (event.keyCode == 68) { //key D 
     split(); 
    } 
} 

function split() { 
    $("body").trigger($.Event("keydown", { keyCode: 32})); 
    $("body").trigger($.Event("keyup", { keyCode: 32})); 
    alert("Did it work?"); 
} 

も成功しません。この方法を試してみました:この質問に示すように

var space = jQuery.Event("keydown"); 
space.which = 32; 
$("body").trigger(space); 

[jQueryを使ってキープレスイベントをトリガするために決定的な方法

]私がすることができた1

+1

@Dekelあなたが参照した質問に示された方法を試しました。それは私が新しい質問を投稿した理由ではありませんでした。 – Vindictive

+0

あなたの 'split();'の後に 'event.stopPropagation();'を追加してみてください。 –

+0

stopPropagation();動作しませんでしたが、ありがとう。 – Vindictive

答えて

0

問題を解く。コード自体は正しく機能していますが、問題はChrome拡張機能を設定する方法にあります。ここに見つかった解決策を適用するhttps://stackoverflow.com/a/9517879/4651794私はコードを実行することができました。問題がキーコマンドであると思ったので、この質問にはメリットが残っているかどうかはわかりません。

関連する問題