我需要以编程方式最大化/调整CKEditor IFrame对话框(即带有“ok”和“cancel”按钮的CKEditor对话框,以及其余的iframe)。我需要对话框在屏幕上保持居中。
我只能看到调整窗口大小和重新定位的功能,但要使用这些功能,我必须首先计算窗口尺寸以重新定位它。这很愚蠢有很多原因,API应该完全处理它。
是否有正式的API函数来执行此操作或安全的解决方法?
我可以使用JQuery,但我真的很想使用本机函数。
答案 0 :(得分:2)
如果您同时调整大小并重新定位,那么执行一项功能就不那么难了:
(这是伪javascript,因为我没时间对它进行修改,所以基本上是想法)
function dialogResizeCentered (d,w,h){ //d-dialog, w,h-width, height
var sw,sh; //screenwidth, screenheight
var rx,ry; //null atm, for resize x, resize y
get sw, sh from window. object
rx = parseInt(sw/2-w/2);
ry = parseInt(sh/2-h/2);
d.call resize (w,h);
d.call reposition(rx,ry);
}
然后随时可以拨打dialogResizeCentered(d,600,400);
或
或者,如果您希望对话框保持居中,我确信有window.onResize
事件可以调用此函数。
我希望我理解正确:)
答案 1 :(得分:1)
我自己使用CKEditor,但选择使用jquery的UI对话框作为我的自定义对话框,因为它更加灵活,功能丰富,开箱即用,可在以下网址找到:
http://docs.jquery.com/UI/Dialog
但如果您更喜欢使用自定义CKEditor对话框,那么jQuery的position():
http://api.jquery.com/position/
height(),width()和offset()在确定对话框的大小和位置时非常有用:
http://api.jquery.com/category/manipulation/style-properties/