【问题标题】:Can Javascript press the Enter key for me?Javascript 可以为我按 Enter 键吗?
【发布时间】:2015-06-25 11:57:25
【问题描述】:

有一个网站,我想在我离开时继续点击进入。有没有可能做类似的事情

setInterval(function(){
    //have javascript press the button with a certain id
},100);

我想把它放在智能搜索栏中,这样它就可以运行代码了。

【问题讨论】:

  • 除非您找到使用 XSS(跨站点脚本)注入代码的方法。我认为你做不到。
  • @Jacques:在这种情况下,这很简单:您只需打开 Web 控制台并输入。该代码与您正在查看的页面在同一环境中运行。
  • @T.J.Crowder,你说得对,我从来没想过。在那种情况下,我猜它是可能的

标签: javascript button keyboard bots


【解决方案1】:

按下回车键会触发event。您必须弄清楚他们正在听哪个事件侦听器。我将在以下示例中使用keyup

假设el 是您想要输入的元素的变量。我不确定你将如何获得该元素,但我相信你知道。

var evt = new CustomEvent('keyup');
evt.which = 13;
evt.keyCode = 13;
el.dispatchEvent(evt); //This would trigger the event listener.

没有办法真正模拟硬件动作。它只是触发事件监听器。

比如调用el.click()只是调用事件监听的回调,并不是真正的按键。

所以您知道如何将事件侦听器添加到元素时,第一个参数是event 对象。

el.addEventListener('keyup', function(event) {
   //Do Something
});

el 上调用dispatchEvent 时,event 以上等于evt

如果程序员使用:

el.onkeyup = function(event) {
  //do whatever.
}

这非常简单。

只需拨打el.onkeyup(evt);

因为onkeyup是一个函数。

为什么我使用CustomEvent而不是KeyboardEvent,因为new KeyboardEvent('keyup')返回的是一个具有whichkeyCode属性的对象,如果不使用Object.definePropertyObject.defineProperties就无法重写

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多