定位相对于父窗口的iframe内部的jquery对话框

时间:2010-05-05 13:38:51

标签: javascript jquery jquery-ui jquery-plugins

你好所有

我有一个网站上有一个非常大的滚动条,中间有一个iframe 设置为没有滚动,其高度为3000

无论如何,在iframe中打开的文档中都有一个jquery对话框。

当我看着父母的顶部 然后单击打开对话框的iframe内的按钮 对话框在iframe的中间打开,我看不到它......

那是因为它根据文件进行计算而不是顶级文件

我怎么能改变它?

所以,如果我的滚动在父母中一直向下,那么iframe中的对话框将在iframe的底部打开,我可以看到它..换句话说就是对父文档的位置有所了解。

这就是我打开对话框的方式:

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

提前致谢

2 个答案:

答案 0 :(得分: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;       

修复它。

答案 1 :(得分:0)

你应该使用self.parent来引用计算时包含iframe的文档对象,否则计算将基于iframe中的文档对象。这是当前导致对话框位于iframe中文档对象中心的内容,而不是包含iframe的父页面的文档对象。希望有意义:))