Я знаю, что могу вызвать focus(), но моя цель — использовать диспетчеризациюEvent и только события мыши.
Это происходит из большого приложения, где у меня есть прозрачный IFrame по всей странице (представьте себе прозрачный слой с некоторым настраиваемым контентом поверх Google Maps). Содержимое IFrame может исходить от стороннего поставщика, который может либо обработать событие щелчка, либо передать его родительскому элементу (что-то вроде всплывания, но через границы кадра).
При этом я заметил, что некоторые элементы на родительской странице (например, текстовые поля и кнопки) ведут себя не так, как я обычно ожидал, поэтому я создал этот небольшой пример, чтобы проиллюстрировать проблему.
Код: Выделить всё
function handleClick(event)
{
let textbox = document.getElementById('text');
let rect = textbox.getBoundingClientRect();
let newEvent = new MouseEvent('click', {
clientX: rect.x + 5,
clientY: rect.y + 5,
x: rect.x + 5,
y: rect.y + 5,
pageX: rect.x + 5,
pageY: rect.y + 5
});
textbox.dispatchEvent(newEvent);
}Код: Выделить всё
ClickПодробнее здесь: https://stackoverflow.com/questions/793 ... oesnt-work
Мобильная версия