2009-11-04 56 views
5

我正在嘗試使用jQuery UI的模式對話框並在IE8中測試我的東西。每次彈出對話框時,都會在背景上創建一個巨大的DIV,並且IE會不斷更改垂直滾動條的大小,以及是否在後臺下載了大量的頁面。在兼容模式下,IE會更改垂直滾動條的拇指一次,一切都按預期工作,並且看起來不像頁面仍在加載。 jQuery UI的示例對我來說很好。jQuery UI對話框:IE 8中背景上的巨大DIV

這裏是我的代碼:

$("#confirm_stage_change").dialog({ 
    autoOpen: false, 
    bgiframe: true, 
    modal: true, 
    height: 300, 
    width: 300, 
    draggable: false, 
    resizable: false 
}); 

這是我的 「對話」:

<div id="confirm_stage_change" title="Confirm Stage Change"> 
    <p> 
     Hello!!! 
    </p> 
</div> 

這是我在檢查看到DIV:

<div class="ui-widget-overlay" style="z-index: 1001; width: 1069px; height: 20218px;" jQuery1257312441701="35"> 

有沒有人看到類似的東西?

謝謝!更新:它發生在IE8標準模式(XHTML 1.0嚴格; jQuery UI的示例也在此模式下被破壞),但在IE 8 Quirks模式中沒有問題。

+0

也許一些截圖可以幫助我們視覺的問題更多一點? – 2009-11-04 20:12:36

+0

這裏是有問題的HTML文件: http://dev.jqueryui.com/attachment/ticket/4942/test.html – wasker 2009-11-06 04:15:54

+0

(下載鏈接在最下面) – wasker 2009-11-06 04:17:26

回答

0

我不知道我完全理解這個問題,但這裏是它一個刺:

的jQuery UI的對話框窗口小部件(在modal dialog mode)總是把一整頁的div在內容頁面的其餘部分默認爲。這是正常的行爲。它可能不會出現在怪癖模式中,因爲jQueryUI團隊不支持怪異模式。如果您不希望對話框中包含覆蓋div的內容,則應考慮其他對話框選項。

就滾動條而言,通常這些不會因爲使用模態對話框而出現。但是,如果您的頁面足夠大以致在對話框出現之前導致滾動,那麼瀏覽器在所有情況下都會有不同的反應。

+0

問題是,這個內容DIV工作得很好怪癖模式,但如果我切換到標準,滾動條會變得瘋狂。 – wasker 2009-11-04 13:56:26

8

我發現了另一篇文章的答案:JQuery UI modal dialog uses 100% CPU

添加以下樣式。

.ui-widget-overlay 
{ 
    position: fixed; 
} 
+0

這會殺死IE6。務必在IE6條件樣式表中恢復爲'position:absolute'。 – 2011-06-30 15:43:12

0

太晚了,但可能是有用的人,嘗試將文檔類型更改爲類似:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">