ahmapiz
@ahmapiz
Начинающий front-end программист, html верстальщик

Почему не получается скопировать обработчик события?

Доброго времени суток. Есть текстовое поле и при вводе текста (событиях keyBoard ) появляется кнопка отправить . Мне очень нужна эта кнопка со всеми слушателями событий. Но имитируя текстовый ввод с помощью :
elem.dispatchEvent(new Event('keypress', {keyCode: 'a'}))
кнопка не появляется, из-за свойства isTrusted .
Пробую создать кнопку из скриптов с теми же значениями, потом скопировать слушателя нужной кнопки (нажимаю любую клавишу чтоб кнопка появилась и потом уже пытаюсь скопировать с нее обработчики) :
let newdiv=document.createElement('div');
newdiv.className='_1gEHKhEcIVXp914tzzgRXP';
newdiv.innerText='SEND';
document.querySelector("._1WepjWULQw18XF_RbW1mDk").appendChild(newdiv)
let newdiv=document.createElement('div');
newdiv.className='_1gEHKhEcIVXp914tzzgRXP';
newdiv.innerText='SEND';
document.querySelector("._1WepjWULQw18XF_RbW1mDk").appendChild(newdiv)
let el=document.querySelectorAll('._1gEHKhEcIVXp914tzzgRXP') // обе кнопки
let lis=document.querySelectorAll('._1gEHKhEcIVXp914tzzgRXP')[0].onclick // нужный обработчик
newdiv.onclick=lis;

все получается , все ок. Но кнопка не работает. Обработчик копируется и виден во вкладке Event Listeners , но не срабатывает.
Все функции и функции/обработчики спрятаны и когда пытаешься посмотреть на них они возвращают [native code] . Перепробовал все возможные способы, но везде натив код.
Не пойму почему обработчик не срабатывает. Кнопка одна, ф-ию обработчик привязал ту же. Все идентично.
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 1
kocherman
@kocherman
function simulateClick() {
  const event = new MouseEvent('click', {
    view: window,
    bubbles: true,
    cancelable: true
  });
  const button2 = document.querySelectorAll('._1gEHKhEcIVXp914tzzgRXP')[0]; 
  const cancelled = !button2.dispatchEvent(event);
}
button.addEventListener('click', simulateClick);

https://developer.mozilla.org/en-US/docs/Web/Guide...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект