2010-05-05 71 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