将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的父页面的文档对象。 希望有道理:)