我在使用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對象的大小,AFTER IFRAME完成加載它的文檔。我得到了IFRAMES文檔的寬度和高度,然後調整了IFRAME以適應沒有滾動條的文檔,然後我調整了YUI面板的大小以正確包含IFRAME。
在此之後做我打個電話給:
dialog.center();
這種正確定位的YUI模式面板在屏幕的中央。一切都很棒,第一次。最初,當我想關閉對話框時,我試圖通過使用destroy()方法將其從文檔中完全刪除,但我一直收到配置空引用錯誤,因此我現在只隱藏對話框。當我嘗試再次顯示相同頁面的對話框時,出現真正的問題。 Panel應該正確顯示,除非瀏覽器窗口不應該顯示垂直滾動條。
由於某種原因,模態疊加是否在增長?有什麼方法可以重置Panel或將其從文檔中移除,以便在需要時動態添加它?
此外,相同的部件,但不同的問題。我調整了YUI面板的大小並重新定位後,遇到了另一個有趣的情況。襯底的增長不符合小組的新尺寸。我不得不手動去調整底襯。有一個更好的方法嗎?
在此先感謝您的幫助。
丹尼爾
Hey @Daniel P,你是如何在iframe加載完成後調整面板和iframe對象的?提前致謝。 – 2014-03-27 23:26:52