2017-09-13 122 views
2

我正在尝试创建一个修改受欢迎的浏览器游戏Agar.io的控件的Chrome扩展。快速总结,在游戏空间执行分裂行动。我想要执行相同的操作,但通过按D而不是SPACE。扩展工作正常。它检测到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我能够获得代码运行。不知道这个问题是否有什么价值,因为我认为问题出在关键命令上。