模拟按键事件

时间:2020-09-05 21:50:45

标签: javascript dom automation

所以,这是一个非常简单的问题,但我找不到很好的答案。我只想在网页上按间隔自动执行按键1的按键事件。

模拟按键事件的最简单方法是什么?

是否有诸如document.keypress()之类的东西?

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作-

sh /Users/bakthak/check.sh

在上面的演示代码中,我刚刚在整个窗口上设置了// Setup the eventListener to log whenever a key press occurs window.addEventListener('keydown', function(event) { console.log('key pressed - ', event.key); }); // create a keyboard press event var event = new KeyboardEvent('keydown', { 'key': '1' }); // call / simulate the event every 1000s using dispathEvent method setInterval(() => window.dispatchEvent(event), 1000);,只要按下一个键,它就可以控制台日志-eventListener

下面只是使用key pressed创建一个事件,然后调用它,或者您可以说在new KeyboardEvent函数中使用dispatchEvent每1秒模拟一次键盘按下事件

答案 1 :(得分:0)

您是否正在寻找类似的东西?您也可以以此捕获实际的键盘输入。

我建议您改用按键事件。

document.addEventListener('keyup', e => {
  // User is in a textbox don't continue
  if(['textarea', 'input'].includes(document.activeElement.tagName.toLowerCase())) {
    console.log('in textarea')
    return;
  }

  // The user is not in a textbox resume navigation.
  if (e.key === 'd') {
    console.log('next profile')
  } else if (e.key === 'a') {
    console.log('previous profile')
  } else {
    console.log('invalid key')
  }
})

setInterval(() => {
  let evt = new KeyboardEvent('keyup', {key: 'd'})
  document.dispatchEvent(evt)
}, 2000)
<input type="text">