Javascript 如何使一个人不能模拟点击

Javascript 如何使一个人不能模拟点击,javascript,jquery,Javascript,Jquery,我注意到,在为某人编写脚本时,这个特殊按钮(登录按钮):不允许以任何可能的方式模拟单击 我非常想知道他们是怎么做到的。 我试过了 var btn=$('#Login > div > div > button.btn-standard.call-to-action'); btn.click(); // or trigger('click'); // or click = new Event(click); btn.dispatchEvent(click); // or bt

我注意到,在为某人编写脚本时,这个特殊按钮(登录按钮):不允许以任何可能的方式模拟单击

我非常想知道他们是怎么做到的。 我试过了

var btn=$('#Login > div > div > button.btn-standard.call-to-action');
btn.click(); // or trigger('click');

// or
click = new Event(click);
btn.dispatchEvent(click);

// or

btn.trigger('mousedown');

// oh and also:

function click(x, y)
{
 var ev = new MouseEvent('click', {
     'view': window,
     'bubbles': true,
     'cancelable': true,
     'screenX': x,
     'screenY': y
 });

 var el = document.elementFromPoint(x, y);

 el.dispatchEvent(ev);
}
我甚至试过mouseenter,然后是mousedown和mouseup


如何实现这种功能?

下面是一个他们可能正在做的示例
Event.isTrusted
提供有关它是用户操作还是创建的事件的信息。他们可能对此有一些逻辑:

从:

事件接口的isTrusted只读属性是布尔值 如果事件由用户操作生成,则为true;如果为false,则为false 通过脚本创建或修改事件或通过 EventTarget.dispatchEvent()

document.getElementById('btn').addEventListener('click',(e)=>console.log(e.isTrusted));
//模拟点击加载(应在控制台上打印false)
document.getElementById('btn')。单击();//假的
//TODO:手动单击按钮,您将看到正在打印的“true”

Button
F12如果“查看源代码”对您不起作用,Google中的开发工具应该允许您使用网络选项卡查看其代码。如果是登录按钮,它没有禁用的类,因此您的选择器是错误的$('#LOGIN>div>div>Button.btn standard.call to action.disabled')。长度是0,没有。disabled是1这是我的错误,我从未使用禁用的选择器。代码更新这能回答你的问题吗?我相信他们使用了更复杂的东西,我已经读到,你也可以通过调试器伪造这些。在他们的代码中有类似于“if(_0x51d7b6instanceof MouseEvent){”的东西,我找不到任何与isTrustedI相关的东西,我相信它稍微优雅一点,但很可能非常相似。