2009-10-07 5 views
0

YUI 패널을 대화 상자로 사용하는 동안 문제가 있습니다. 그런 다음YUI 패널 크기 조정 문제

$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 개체의 크기를 조정해야합니다. After IFRAME이 문서로드를 마쳤습니다. IFRAMES 문서의 너비와 높이를 얻은 다음 스크롤 막대가없는 문서에 맞게 IFRAME의 크기를 조정 한 다음 IFRAME을 올바르게 포함하도록 YUI 패널의 크기를 조정했습니다. 이 후

내가에 전화를 걸 이루어졌다 :

dialog.center(); 

이 화면의 중앙에 정확하게 유이 모달 패널을 배치합니다. 모든 것이 처음에는 훌륭합니다. 원래 대화 상자를 닫으려고 할 때 destroy() 메서드를 사용하여 문서에서이 파일을 제거하려고 시도했지만 구성 null 참조 오류가 발생하여 대화 상자를 지금 숨기 만했습니다. 실제 페이지는 동일한 페이지에 대한 대화 상자를 다시 표시하려고 할 때 발생합니다. 이제는 브라우저 창에 세로 스크롤 막대가 있으면 안되는 경우를 제외하고는 패널이 올바르게 표시됩니다.

어떤 이유로 Modal 오버레이가 커지고 있습니까? 필요한 경우 패널을 동적으로 추가 할 수 있도록 Panel을 * 재설정 *하거나 문서에서 제거 할 수있는 방법이 있습니까?

또한 같은 위젯이지만 다른 문제가 있습니다. YUI Panel의 크기를 조정하고 위치를 변경 한 후에 또 다른 흥미로운 상황에 처했습니다. 언더 레이는 패널의 새로운 크기와 일치하지 않게되었습니다. 수동으로 가서 밑받침의 크기를 조정해야했습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?

도움을 미리 감사드립니다. 다니엘

+0

안녕하세요 @ 대니얼 P, iframe의로드가 끝난 후 패널 및 iframe 객체의 크기를 어떻게 조정 했습니까? 미리 감사드립니다. –

답변

0

당신이 사용하는 방법에 대한 생각이 :

$("yourpanel_ID").remove(); 

는 DOM, 에서 이런 식으로 패널을 제거하려면, 당신은 새로운 하나 anytimes으로 시작됩니다.