У меня проблемы при использовании панели YUI в качестве диалогового окна.
У меня есть объект диалога, созданный с использованием JavaScript при загрузке страницы:
$J = jQuery;
dialog = new YAHOO.widget.Panel("dialog", { width: "300px", fixedcenter: true, close: true, draggable: true, zindex: 4, modal: true, visible: false });
Затем, когда я вызываю свою функцию loadDialog () из события на странице:
dialog.setBody("<iframe id=\"ifrDialog\" scrolling=\"no\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\"></iframe>");
dialog.hideEvent.subscribe($$F.endDialog);
dialog.render(document.body);
// Set iframe
$J("#ifrDialog").get(0).contentWindow.location.replace(url);
Затем сложность была в том, что мне нужно было изменить размер Panel и объекта IFRAME. ПОСЛЕ , IFRAME завершил загрузку своего документа. Я получил ширину и высоту документа IFRAMES, а затем изменил размер IFRAME, чтобы он соответствовал документу без полос прокрутки, а затем изменил размер панели YUI, чтобы правильно разместить IFRAME.
После того, как это было сделано, я звоню:
dialog.center();
, и это правильно позиционирует модальную панель YUI в центре экрана. Все отлично с первого раза. Первоначально, когда я хотел закрыть диалоговое окно, я пытался полностью удалить его из документа, используя метод destroy (), но я продолжал получать ошибку нулевой ссылки конфигурации, поэтому просто скрываю диалоговое окно. Настоящая проблема возникает, когда я пытаюсь снова показать диалог для той же страницы. Панель отображается правильно, как и должно быть, за исключением того, что теперь в окне браузера есть вертикальные полосы прокрутки, когда этого не должно быть.
По какой-то причине растет модальный оверлей? Есть ли какой-нибудь способ * перезагрузить * Panel или удалить ее из документа, чтобы ее можно было динамически добавлять при необходимости?
Кроме того, тот же виджет, но другая проблема. Я столкнулся с другой интересной ситуацией после того, как изменил размеры и изменил положение панели YUI. Подложка не увеличивалась в соответствии с новым размером панели. Мне пришлось вручную перейти и изменить размер подложки. Есть ли лучший способ сделать это?
Заранее спасибо за помощь.
Daniel