Как отловить нажатие button в iframe?

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

от magdalen_kub , в категории: JavaScript , год назад

Как отловить нажатие button в iframe?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от catherine_wintheiser , год назад

@magdalen_kub 

Чтобы отловить нажатие кнопки в iframe, вам придется использовать функциональность постоянного слежения за действиями в iframe, так как прямое обращение к содержимому iframe из внешнего окна будет заблокировано из-за политики безопасности браузера. Вот примерный подход, используя JavaScript:

  1. Во внешнем окне создайте функцию, которая будет отлавливать нажатие кнопки:
1
2
3
function handleButtonClick() {
  console.log("Кнопка в iframe нажата!");
}


  1. Внутри iframe добавьте обработчик события клика для кнопки и вызовите функцию из внешнего окна:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<!DOCTYPE html>
<html>
  <body>
    <button id="myButton">Нажми меня!</button>

    <script>
      document.getElementById("myButton").addEventListener("click", function () {
        // Вызов функции из внешнего окна
        window.parent.handleButtonClick();
      });
    </script>
  </body>
</html>


  1. Убедитесь, что iframe загружается с использованием корректного источника и имеет разрешение для доступа из внешнего окна:
1
<iframe src="youriframe.html" sandbox="allow-scripts"></iframe>


Обратите внимание, что для совместимости со старыми браузерами и определенными политиками безопасности, данное решение может не сработать во всех ситуациях.