Вызов диспетчерского события (clickEvent) в текстовом поле не работаетHtml

Программисты Html
Ответить
Anonymous
 Вызов диспетчерского события (clickEvent) в текстовом поле не работает

Сообщение Anonymous »

У меня есть очень надуманный пример, в котором я хочу программно сгенерировать событие щелчка в текстовом поле, когда пользователь нажимает кнопку. Я вижу, что текстовое поле получает событие, но фокус не меняется на текстовое поле.
Я знаю, что могу вызвать 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);
}



Подробнее здесь: https://stackoverflow.com/questions/793 ... oesnt-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»