Как отследить событие загрузки формы в Ninja Forms 3.0 через JavaScript

Привет всем! У меня есть проблема с Ninja Forms версии 3 и выше. Мне нужно поймать момент, когда форма полностью загружена и добавлена в DOM страницы через JavaScript.

Я уже перерыл документацию и потратил кучу времени на поиски в интернете, но ничего подходящего не нашел. Может кто-то сталкивался с похожей задачей?

Использую последнюю версию Ninja Forms 3+, хотя признаюсь, что вторая версия была намного удобнее в работе.

Очень не хочется делать постоянную проверку через setInterval, чтобы отслеживать появление формы на странице. Должен же быть более элегантный способ?

Буду благодарен за любые идеи и советы!

Да, третья версия все усложнила. Я решил это через MutationObserver - он отслеживает изменения в DOM и срабатывает, когда форма появляется. Создаешь observer, настраиваешь на нужный контейнер и ждешь элемент с классом nf-form-cont. Работает стабильнее setInterval и не грузит браузер. Пришлось поковыряться с настройками, но оно того стоит. Пользуюсь больше года - никаких проблем.

У меня было то же самое. Попробуй jQuery события. Ninja Forms 3 триггерит nfFormReady когда форма готова. Вешай обработчик так: jQuery(document).on('nfFormReady', function(e, layoutView) { // твой код });. Это официальный способ, хотя в доке толком не описан. Есть еще nfFormLoaded, но оно срабатывает рано - структура еще не готова.

Пробовали через window.addEventListener(‘load’, function() {}) и потом искать форму? Ninja Forms часто грузится асинхронно, обычные DOM события не срабатывают. Можно еще отслеживать загрузку их CSS - когда CSS загрузился, форма обычно готова. Что именно нужно запустить после загрузки?