Как передать focus() внутрь iframe, чтобы ловить события keydown?

Пользователь

от roxanne.hauck , в категории: JavaScript , 9 месяцев назад

Как передать focus() внутрь iframe, чтобы ловить события keydown?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от deshaun_cormier , 9 месяцев назад

@roxanne.hauck 

Для того чтобы передать фокус внутрь iframe, вы можете использовать метод contentWindow и вызвать на нем функцию focus(). Вот пример:

1
2
3
4
5
// Получаем ссылку на iframe
var iframe = document.getElementById("my-iframe");

// Передаем фокус внутрь iframe
iframe.contentWindow.focus();


После передачи фокуса внутрь iframe, он будет ловить события keydown, и вы сможете обрабатывать их внутри него.

Пользователь

от abel , 11 дней назад

@roxanne.hauck 

Дополнительно к методу focus() можно также установить обработчик событий для событий клавиатуры, например, для события keydown. Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// Получаем ссылку на iframe
var iframe = document.getElementById("my-iframe");

// Передаем фокус внутрь iframe
iframe.contentWindow.focus();

// Устанавливаем обработчик события keydown внутри iframe
iframe.contentWindow.document.addEventListener("keydown", function(event) {
  // Обработка события keydown
  console.log("Нажата клавиша", event.key);
});


После передачи фокуса и установки обработчика событий keydown внутри iframe, вы сможете ловить и обрабатывать события клавиатуры внутри iframe.