如何模拟JS中的按键?

时间:2017-09-13 09:43:32

标签: javascript jquery google-chrome-extension

我正在尝试创建一个Chrome扩展程序来修改流行的浏览器游戏Agar.io的控件。游戏中的快速摘要SPACE执行拆分操作。我想执行相同的操作,但按D而不是SPACE。扩展工作正常。它检测到D已被按下并调用了我的split()函数;我知道这是因为警报弹出但实际的游戏动作没有执行。我环顾四周,尝试了不同的方式,但没有任何工作。下面是我的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 个答案:

答案 0 :(得分:0)

我能够解决问题。代码本身是正确和实用的,但问题在于我设置chrome扩展的方式。应用此处找到的解决方案https://stackoverflow.com/a/9517879/4651794我能够运行代码。不确定这个问题是否有任何优点,因为我认为问题在于关键命令。