2010-05-05 59 views
2

喂所有定位jquery的對話框是一個iframe realtive父窗口內

我有上有一個非常大的滾動一個網站,有一個iframe在中間 組有沒有滾動它的高度是3000

無論如何,在iframe中打開的文檔中有一個jQuery對話框。

當即時尋找在父 的頂部,然後單擊打開的對話框中 對話框打開在iframe的中間,我看不到它的iframe中的按鈕...

那是因爲它的根據文件進行計算而不是頂端文件

我該如何改變這種情況?

因此,如果我的滾動在父級一路下降,iframe中的對話框將在iframe的底部打開,我可以看到它..換言之,對於父文檔的位置是真實的。

這是我打開我的對話框:提前

+0

如果你在這裏粘貼你的javascript,有人可能可以修復它爲你的 – 2010-05-05 14:47:11

回答

3

我得到它的工作!

這是你需要在jQuery的對話框插件 它是一個很好的變化而變化,因爲它使得從一個iframe的對話框工作,以及只是一個普通的頁面

(這一點,如果你只會工作是什麼在同一個域)

這是行,你需要改變:

這一個:

pTop = doc.scrollTop() 

到這樣的:

pTop = $(top.document).find("html").scrollTop() 

這一個:

pTop += (wnd.height() - this.uiDialog.outerHeight())/2; 

這樣:

pTop += ($(top.document).find("html").attr("clientHeight") - this.uiDialog.outerHeight())/2;  

修復它。

0

你應該使用self.parent指在做計算時,你的iframe包含在文檔對象

generalDialog.dialog({ 
    bgiframe:false, height:p_height, width:480, modal:true, autoOpen:false, hide:'fadeout', show:'slide', closeOnEscape:true}); generalDialog.dialog("open"); 

感謝,否則計算基於iframe中的文檔對象。這是當前導致您的對話框位於iframe中的文檔對象的中心,而不是包含iframe的父頁面的文檔對象。希望有道理:)

+0

是ive說的確切......我知道是什麼造成的問題,我只是不知道我需要做的對話框來修復它。 哪些代碼需要更改,以及所有這些...也必須確保正常窗口不僅僅是在iframe中打開的窗口。 因爲還有其他頁面使用這個jquery插件avcorse tnx – 2010-05-06 04:48:38