Я использую colorbox (плагин jquery) для отображения многоэтапного процесса регистрации. Я использую colorbox в режиме "iframe".
$('#signup').colorbox({
width: '500px',
height: '250px',
opacity: '.5',
scrolling: false,
fixed: true,
iframe: true
});
Поскольку содержимое разных шагов имеет разную высоту, я бы хотел, чтобы colorbox автоматически изменял размер при загрузке нового шага.
Я использую следующий код в содержимом iframe (просто в теге скрипта в конце документа):
$(function() {
var iH = $(document.body).height();
console.log("iframe height: " + iH);
parent.$.colorbox.resize('height', iH);
});
До этого я пробовал более простую версию:
parent.$.colorbox.resize();
Но в обоих случаях я получаю бесконечный цикл: содержимое iframe бесконечно перезагружается и фактически никогда не отображается (иногда я вижу, как оно мигает).
Изменение размера iframe в процессе (во время первого цикла), поэтому оно кажется частично работающим. Однако новый размер слишком мал для предполагаемого контента, поэтому я не знаю ...
Есть идеи, почему это не работает и как это решить?
Обновление:
Если я помещаю приведенный выше скрипт (простая версия) на второй шаг, а не на первый, я избегаю бесконечного цикла, , но , когда нажимаю, чтобы перейти ко второму шагу, вместо этого фактически загружается первый шаг второго шага.
То же самое происходит, если я поместил этот скрипт на третий шаг: вместо него загружается первый шаг.
Таким образом, кажется, что при выполнении своей функции «изменить размер» colorbox как бы перезапускает все это с самого начала? ...