Как имитировать ввод пароля в input password
Есть расширение для гугла. Хочу немного оптимизировать работу с ним для себя. Нужно в поле input type="password" вставить свой пароль.
Просто вставить свой пароль в это поле не проблема:
document.querySelector("input").value = 'password'
Пароль вставляется, но при нажатии на input пароль сразу пропадает.
Вот их input:
<input aria-invalid="false" autocomplete="new-password" id="create-password" type="password" dir="auto" class="MuiInputBase-input MuiInput-input" value="">
Как заставить думать сайт что текст введен с клавиатуры?
Буду благодарен за помощь!
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
let input = document.querySelector("input");
/* Для демонстрации триггера события */
input.addEventListener('change', (e) => {
console.log('changeEvent');
})
input.addEventListener('input', (e) => {
console.log('inputEvent');
})
/* Для демонстрации триггера события */
let pass = 'wertwer';
for (let i = 0; i < pass.length; i++) {
setTimeout(() => {
input.value += pass.charAt(i);
let changeEvent = new Event('change');
let inputEvent = new Event('input');
input.dispatchEvent(changeEvent);
input.dispatchEvent(inputEvent);
}, 500 * (i + 1));
}
<input type="text">
Ещё может быть событие keyup, keydown и ещё бог знает сколько там навешано
Автор решения: VTsM
→ Ссылка
Помогла эта функция
function changeValue(input, value) {
var nativeInputValueSetter = Object.getOwnPropertyDescriptor(
window.HTMLInputElement.prototype, "value").set;
nativeInputValueSetter.call(input, value)
var inputEvent = new Event("input", {
bubbles: true
});
input.dispatchEvent(inputEvent);
}