Обработка событий js в tilda

Каким образом в js поставить middleware на событие? Есть событие, а хочется сверху на него навесить ещё одно, которое будет выполняться после.

Пример. У меня есть форма на тильде. Она уже заинтегрирована с моим сервисом. Но помимо прочего, мне нужно сразу после отправки сообщения сделать редирект.


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

Автор решения: hedgehogues

Отвечу на вопрос про tilda. Именно он фигурировал в примере. Ответ есть здесь.

Вам следует использовать аналогичный скрипт. Он связывает с отправкой формы событие через callback:

<script>
$(document).ready(function () {window.mySuccessFunction = function ($form) {
        $.ajax({
            url: "https://example.com",
            type: "POST",
            data: {},
            async: false,
            success: function (response) {
                window.location.href = `https://example.com`;

            },
            error: function(XMLHttpRequest, textStatus, errorThrown) { 
                window.location.href = `https://example.com`;
            }  
        });

    }

    setTimeout(function () {
        $(".js-form-proccess").each(function () {
            $(this).data("success-callback", "window.mySuccessFunction");
        });
    }, 10000);
});
</script>

По ссылке можно найти примеры, как отправлять данные формы и другие, аналогичные. Вопрос в том, что здесь отправляются данные с помощью ajax, но есть также механизм веб-хуков, который тоже отправляется данные. С одной стороны, он не будет светить url, на который делается запрос. С другой стороны, запрос будет асинхронным и может возникнуть проблема с консистентсностью.

Пример

Делается запрос с помощью веб-хука на регистрацию. Далее делается редирект на страицу с логином. Тогда может оказаться, что редирект на страницу с логином произошёл раньше, чем отработал веб-хук и логин не произошёл. В связи с этим, требуется последовательный набор действий. Сначала -- регистрация. Потом -- логин. Т.е. всё должно быть синхронно.

→ Ссылка
Автор решения: solowey

Если обычный редирект, то это делается в настройках («Контент») на самой тильде.

Если нужно показать сообщение об успехе после редирект, то можно воспользоваться этим решением, а внутрь этого скрипта уже поместить всё своё, что необходимо.

→ Ссылка