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相关的东西,我相信它稍微优雅一点,但很可能非常相似。