Это немного похоже на минимизированный код, где вызов функции часто сокращается путем создания таблиц поиска, поэтому вы можете сэкономить некоторые биты при длинных вызовах функций, таких как Element.dispatchEvent
, и вместо этого минимизировать его до e[l(p)]
.
Переменная _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)
Я предполагаю, что это настройка значение входного элемента _0x76ed32
, но почему элемент оборачивается $(_0x76ed32)
и каковы два параметра функции, нельзя сказать только из этой строки кода. Я предполагаю, что это похоже на собственный вызов setAttribute(name,value)
.
и, наконец, у вас есть следующий фрагмент кода:
_0x76ed32[a0_0x3fed('0xb3')](new Event('input'))
Здесь a0_0x3fed('0xb3')
снова возвращает имя функции. Из проверки вызова, скорее всего, это dispatchEvent
, который затем отправляет событие input
в элемент _0x76ed32
.
Это может работать примерно так:
let _0x76ed32 = document.querySelector("input"),
fields = {
'0xb3': "dispatchEvent",
'0x3b': "value",
'0x9f': "setAttribute"
},
a0_0x3fed = par => fields[par],
_0x5bf4db = "new value :)";
// slightly changed the code
_0x76ed32[a0_0x3fed('0xb3')](new Event('input'));
_0x76ed32[a0_0x3fed('0x9f')](a0_0x3fed('0x3b'), _0x5bf4db);
_0x76ed32[a0_0x3fed('0xb3')](new Event('blur'));
<input type="text" value="old value!" />
Заключительное примечание: ваш код должен работать отлично, если вы генерируете события в правильном порядке:
var elem = document.getElementById('mobile');
elem.value = '1234567890';
elem.dispatchEvent(new Event('blur', { bubbles: true }));
elem.dispatchEvent(new Event('input', { bubbles: true }));
<input id="mobile" type="text" value="123" />