解释javascript

解释javascript,javascript,Javascript,我正在开发一个网站自动化,有一个带有输入字段的表单。我正在设置它的值,如下所示 var elem = document.getElementById('mobile'); elem.value = '1234567890'; elem.dispatchEvent(new Event('input', { bubbles: true })); elem.dispatchEvent(new Event('blur', { bubbles: true })); 之后,当我点击提交按钮时,它会给我一个

我正在开发一个网站自动化,有一个带有输入字段的表单。我正在设置它的值,如下所示

var elem = document.getElementById('mobile');
elem.value = '1234567890';
elem.dispatchEvent(new Event('input', { bubbles: true }));
elem.dispatchEvent(new Event('blur', { bubbles: true }));
之后,当我点击提交按钮时,它会给我一个错误,请手动填写表格并将我注销

但是我遇到了一个扩展,它做着完全相同的工作,没有任何错误。当我反编译代码时,我发现这行代码正确地设置了输入值

_0x76ed32['dispatchEvent'](new Event('blur')), $(_0x76ed32)[a0_0x3fed('0x9f')](a0_0x3fed('0x3b'), _0x5bf4db), _0x76ed32[a0_0x3fed('0xb3')](new Event('input'));

我对参数感到困惑,所以这里的任何javascript专家都可以为此提供有意义的代码吗?这看起来有点像最小化代码,函数调用通常通过创建查找表来缩短,因此您可以在长函数调用上保存一些位,如
Element.dispatchEvent
,并将其最小化为
e[l](p) ]

变量
\u 0x76ed32
保存对输入元素的引用

_0x76ed32['dispatchEvent'](new Event('blur'))
这是对元素的函数调用。它相当于您看到的常用符号:

_0x76ed32.dispatchEvent(new Event('blur'))
这意味着它只是分派模糊事件。如果您不知道函数的名称并且是在运行时决定的,那么这种编写函数调用的方法是典型的,例如

let func = 'dispatchEvent';
_0x76ed32[func](new Event('blur'))
查阅“反思”了解更多关于这方面的信息

下面的代码段就是一个很好的例子:

a0_0x3fed('0x9f')
返回一个函数名,然后将其插入以下函数调用

$(_0x76ed32)[a0_0x3fed('0x9f')](a0_0x3fed('0x3b'), _0x5bf4db)
我假设它正在设置输入元素
\u 0x76ed32
的值,但不能仅从这行代码中得知元素被包装的原因
$(\u 0x76ed32)
,以及两个函数参数是什么。
我假设它类似于本机的
setAttribute(name,value)
调用

最后是以下代码片段:

_0x76ed32[a0_0x3fed('0xb3')](new Event('input'))
这里,
a0_0x3fed('0xb3')
再次返回函数名。通过检查调用,很可能是
dispatchEvent
,然后它在元素
\u 0x76ed32
上调度
输入
事件

它可能是这样工作的:

let _0x76ed32=document.querySelector(“输入”),
字段={
“0xb3”:“dispatchEvent”,
“0x3b”:“值”,
“0x9f”:“setAttribute”
},
A0O0x3FED=PAL= >字段[PAR ],
_0x5bf4db=“新值:)”;
//稍微更改了代码
_0x76ed32[a0_0x3fed('0xb3')](新事件('input'));
_0x76ed32[a0_0x3fed('0x9f')](a0_0x3fed('0x3b'),'U 0x5bf4db);
_0x76ed32[a0_0x3fed('0xb3')](新事件('blur'))

非常感谢。分派模糊事件,然后设置值,然后分派输入事件,效果非常好。一个查询,关于一些元素的
keydown
keydup
事件也被触发。你能不能也提到触发这些事件的正确方式,特别是它们的顺序