将iframe内部的jquery对话框定位到父窗口

你好

我有一个网站上有一个非常大的滚动,并在中间设置一个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"); 

提前致谢

我得到了它的工作!

这是你需要在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; 

修复它。

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