iframe中的JQuery UI Dialog
我正在开发一个sp2013应用程序,这意味着它正在使用iframe。 具体来说,它是一个非常大的iframe占据了大部分屏幕。 在很多方面,我正在打开jquery ui对话框窗口。 它们被设置为出现在视口的中间,这很好,除了它显示在iframe的中间,而不是显示在可见屏幕的中间。
有没有办法告诉jquery ui看看window.top的滚动属性,而不是iframe?
编辑:iframe和父级位于同一个域中,因此跨域问题不是问题。
好的,所以我找到了解决方案。 在声明我的对话框时,我执行了以下操作:
$("selector").dialog({ position: {my: "center", at: "center", of: window.top} });
HTML:
Hello, world!
jQuery的:
alert('Window size: '+window.innerWidth); var dialogWidth = 500; var dialogHeight = 200; var dialogX = (window.innerWidth - dialogWidth)/2; var dialogY = (window.innerHeight - dialogHeight)/2; $("#dialog").dialog({ position: [dialogX,dialogY], width: dialogWidth, height: dialogHeight }, 500); alert('Dialog position: '+$("#dialog").dialog( "option", "position" ));
小提琴: http : //jsfiddle.net/3vjsa/3/
在iframe内部运行。 水平和垂直居中。 如果窗口的居中位置落在iframe之外,它将移动到iframe的边缘。 添加警报消息以显示窗口宽度和对话框位置。