你好所有
我有一个网站上有一个非常大的滚动条,中间有一个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");
提前致谢
答案 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的父页面的文档对象。希望有意义:))