gpt4 book ai didi

javascript - 检测按钮是点击真实用户还是由脚本触发

转载 作者:可可西里 更新时间:2023-11-01 01:50:01 26 4
gpt4 key购买 nike

有什么方法可以让我检测按钮点击是否由真实用户执行,而不是由用户加载到他们的浏览器开发者控制台或其他浏览器开发者工具的某种自动化方法 (javascript)?

我尝试了各种 stackoverflow 帖子中建议的以下方法,但它们似乎都不起作用。引用:How to detect if a click() is a mouse click or triggered by some code?

尝试和失败的脚本检测方法:

mybutton.click(function (e) {
if (!e.which) {
//Triggered by code NOT Actually clicked
alert(' e.which - not a real button click')
} else if ('isTrusted' in e && !e.isTrsuted) {
//Triggered by code NOT Actually clicked
alert(' e.isTrusted - not a real button click')
} else if (e.originalEvent === undefined) {
//Triggered by code NOT Actually clicked
alert(' e.originalEvent - not a realbutton click')
}
// else if (!e.focus) {
// //triggered // does not detect e.focus on a real btn click
// alert(' e.focus - not a realbutton click')
// }
else {
// Button hopefully clicked by a real user and not a script
}
})

如果我运行以下脚本以从 Chrome 浏览器控制台触发按钮点击,上述任何方法都不会将其视为由脚本触发。

var button = document.getElementById("btnSubmit");
button.click();

============================================= ===========================

感谢您的所有回复,并感谢 stackoverflow 提供了如此出色的网站,促进了如此多的知识共享,并为我们的技术人员节省了无数小时。

看来我还是没有可靠的方法。所有 3 种浏览器(FF、IE 和 Chrome)都为用户提供了开发者/控制台界面,以便在我的网页上运行/注入(inject) javascript。似乎每个浏览器风格都会以不同的方式捕获一些事件属性值。例如:Chrome 使用 e.screenX 捕获脚本激活的点击和真实用户之间的差异,但在 IE 中:e.screenX 对于脚本点击(合成)和用户按钮点击具有相同的值

以下检测方法要么根本不起作用,要么在不同的浏览器中不一致:e.which e.isTruted e.originalEvent (event.source != window) (e.distance != null)

mousedown 事件似乎只由真正的用户按钮单击触发,但我必须假设除了按钮单击事件之外还有一些脚本方法可以模拟 mousedown

$(me.container + ' .mybutton').mousedown(function (e) { 
alert('mouseisdown real button click');
}

如果有人能想出一种适用于多种浏览器的可靠方法,检测合成(脚本)按钮点击和用户点击按钮之间的区别,那么您将获得 super 英雄地位。

最佳答案

当通过鼠标单击按钮时,事件 e 通常会记录鼠标指针位置。尝试类似的东西:

   if(e.screenX && e.screenX != 0 && e.screenY && e.screenY != 0){
alert("real button click");
}

关于javascript - 检测按钮是点击真实用户还是由脚本触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14794380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com