【问题标题】:Is it possible to cause a webpage, say a HTML5 game to simulate a key press with Javascript?是否可以使网页(例如 HTML5 游戏)用 Javascript 模拟按键?
【发布时间】:2015-08-05 15:30:04
【问题描述】:

我是 JavaScript 和一般编程的新手。我会尽力解释我想做的事情。 我和这个人有一个非常相似的问题,但我想用 JavaScript 来做,因为我有点知道如何使用它。 Need to send key presses to a webpage(html5 game)

基本上我希望能够发送按键和/或鼠标点击 I.E. WASD 或上、下、左和右。所以我可以有效地自动执行一项任务。

作为主要问题的旁注,有没有一种方法可以显示游戏中发生的 JavaScript 事件,以便对其做出反应?

如果可能的话,我将如何让脚本影响网页,我需要知道什么才能做到这一点?

谢谢!

【问题讨论】:

  • 你想达到什么目的?
  • @Oriol 我想做一个机器人。
  • 到目前为止你尝试过什么?你用谷歌搜索过吗? Javascript 事件监听器肯定会解决你的问题。
  • 看这里:phaser.io
  • 您试图欺骗的页面会检测按键。要伪造击键,您必须知道那个“东西”是什么。大概,它是一个事件监听器,你必须知道事件类型、阶段、元素……

标签: javascript html artificial-intelligence bots


【解决方案1】:

假设您可以使用 jQuery,如 cmets 所示,您可以这样做:

function simulateKey(char) {
    var e = $.Event("keydown", { keyCode: char.charCodeAt(0)});
    $("body").trigger(e);
}

还假设您想要一个keydown 事件并且它在body 上触发(您可以将body 更改为任何选择器)。

【讨论】:

  • 不过,我会以什么方式将此代码放入网页中?
  • 你可以把它放在你的 JavaScript 文件中,然后调用 simulateKey() 来模拟按键。
【解决方案2】:

您的键盘/鼠标事件侦听器应该调用不同的函数,而不是直接响应事件。一般来说,事件侦听器应该从事件中提取信息并将其传递给处理状态变化的方法。所以你的“机器人”应该直接调用处理状态变化的函数,而不是假装按键。

【讨论】:

  • 如果您仍想调度键盘/鼠标事件,请查看post
猜你喜欢
  • 1970-01-01
  • 2013-01-07
  • 1970-01-01
  • 2011-04-23
  • 1970-01-01
  • 2021-12-12
  • 2014-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多