如何使用javascript执行按钮单击操作

如何使用javascript执行按钮单击操作,javascript,dom-events,Javascript,Dom Events,我试图通过javascript在chrome控制台中执行flipkart中的Buy now按钮的点击操作。使用下面的代码 function timeout_trigger() { var buynowButton = document.getElementsByClassName("_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c")[0]; console.log(buynowButton) buynowButton.click(); } setTimeout('t

我试图通过javascript在chrome控制台中执行flipkart中的
Buy now
按钮的点击操作。使用下面的代码

function timeout_trigger() {
  var buynowButton = document.getElementsByClassName("_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c")[0];
  console.log(buynowButton)
  buynowButton.click();
}

setTimeout('timeout_trigger()', 2000);
我可以在控制台日志中看到我使用

console.log(buynowButton)
但是,当buynowButton上的click方法不适用于flipkart页面时

buynowButton.click();

不要将
超时\u触发器作为字符串调用,而是将其作为引用传递。
尝试:


已编辑

您只需将函数引用放入setTimeout的第一个参数中即可

var timeout_trigger = function(){
var buynowButton = document.getElementsByClassName("_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c")[0];
console.log(buynowButton)
buynowButton.click();   
}
setTimeout(timeout_trigger, 2000);

你可以这样使用它

document.getElementById(“btn”).addEventListener(“单击”,函数(){
console.log('Clicked');
})
var clickBtn=函数(){
var buynowButton=document.getElementById('btn');
Buynow按钮。单击();
}
setTimeout(函数(){
点击btn();
},1000)

单击
在jQuery中触发按钮很容易

$("#id").trigger('click');
或者干脆

$("#id").click();
另外,不要将超时函数作为字符串调用

setTimeout(timeout_trigger(), 2000);

Flipkart不要对其按钮使用
click()
事件! 它使用Ruby的
onClick
和某种复杂的系统来防止自动点击他们的网站。
他们使用名为
handleClick
的函数,将该函数赋予按钮,就好像它被命名为
onClick
,但实际上被称为
o()
。他们使用特殊的事件来处理它。这就是为什么你不能使用
。click()
,他们通过设置
btn.click=()=>{}
来阻止它。他们还使用了非常复杂的系统来防止自动点击,所以基本上你只需要想办法绕过它。

我需要用java脚本编程购买产品,准确地说,你可以使用
buynowButton.onclick({target:buynowButton})请定义“不工作”。当点击发生时,您期望发生什么?那么会发生什么呢?
buynowButton
上的点击方式是什么样子的?我去Flipkart查看您为什么可能不工作。我更新了我的更像:
setTimeout(timeout\u trigger,2000)
setTimeout(()=>timeout\u trigger(),2000)
我尝试使用建议的代码,我能够看到日志值,这意味着调用了timout\u trigger函数,但BuyNow按钮。click()没有将产品添加到cart@rocky那么问题就出在别处了,提供的代码按原样工作。同意。但在flipkart网站上预订FlashSale功能不起作用。使用
函数声明的函数
关键字也可以用作变量
setTimeout(timeout\u trigger,2000)
在声明函数timeout\u trigger时也是有效的
Why jquery?OP正在使用本机DOM API。我没有看到jQuerytag@DennisLukas删除jQuery
setTimeout(timeout_trigger(), 2000);