Передать функцию по сокетам из iframe в конструктор сайта

Всем привет!

Есть трудность с передачей функции из iframe на сайт конструктора tilda. Бьюсь уже довольно долго с этой задачей. По сокетам отправляю alert или window.open, и это срабатывает. А передать функцию не удается.

  • Куда нужно смотреть, подскажите? Гуглил, пробовал разные методы, но как-то не дало результатов.
  • Может в tilda дело?
  • Был ли опыт такого, какие решения могут помочь?

Ответы (1 шт):

Автор решения: O K

Вот решение, которое работает с разных доменов, по https. Спасибо Grundy за подсказку. Получилась!

Страница 1: iframe.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Айфрэйм с кнопкой, и сообщением для родителя</title>
</head>

<body>
    <script>
        function iframe_popup() {
window.top.postMessage('soobshenie', '*')
  }
</script>
    <input type="button" onclick="iframe_popup()" value="Кнопка!">
</body>

</html>
Страница 2: index.html
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Страница со слушателем из айфрэма</title>
</head>

<body>
    <iframe src="./iframe.html"></iframe>
    <script>
    window.onmessage = function(event) {
        if (event.data == 'soobshenie') {
            alert('Сообщение прослушано!');
        }
    };
    </script>
</body>

</html>

→ Ссылка