2009-10-07 6 views
0

У меня возникают проблемы при использовании панели YUI в качестве диалога.Проблемы с изменением размера 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); 

Тогда сложная часть была что мне нужно было изменить размер панели и объекта IFRAME ПОСЛЕ IFRAME закончил загрузку своего документа. Я получил ширину и высоту документа IFRAMES, а затем изменил размер IFRAME, чтобы он соответствовал документу без полос прокрутки, после чего я изменил размер панели YUI, чтобы правильно содержать IFRAME.

После этого было сделано, я сделать вызов:

dialog.center(); 

и это позиционирует YUI модальной панели правильно в центре экрана. В первый раз все отлично. Первоначально, когда я хотел, чтобы закрыть диалоговое окно, я попытался удалить его из документа в целом, используя метод уничтожения(), но я продолжал получать конфигурационный нулевую эталонную ошибку, так что я просто скрыть диалог в настоящее время. Реальная проблема возникает, когда я пытаюсь снова показать диалог для одной и той же страницы. Панель выглядит правильно, как и должно, но теперь окно браузера имеет вертикальные полосы прокрутки, когда это не должно.

Является ли модальное наложение растущим по какой-то причине? Есть ли способ * сбросить * панель или удалить ее из документа, чтобы ее можно было добавить динамически, когда это необходимо?

Также, тот же виджет, но другой вопрос. После того, как я изменил размер и переместил панель YUI, я столкнулся с другой интересной ситуацией. Подкладка не увеличилась, чтобы соответствовать новым размерам Panel. Мне пришлось вручную поменять размер подкладки. Есть лучший способ сделать это?

Заранее благодарим за помощь.

Daniel

+0

Эй @ Даниэль П, как вы изменили размер панели и объекта iframe после завершения iframe загрузки? Заранее спасибо. –

ответ

0

вы думали об использовании:

$("yourpanel_ID").remove(); 

Чтобы удалить панель из DOM, таким образом, вы начнете с свежим anytimes.