3

我需要以编程方式最大化/调整 CKEditor IFrame 对话框的大小(即带有“确定”和“取消”按钮的 CKEditor 对话框,以及其余的 iframe)。我需要对话框保持在屏幕中央。

我只能看到调整窗口大小和重新定位窗口的功能,但要使用这些功能,我必须先计算窗口尺寸才能重新居中。出于多种原因,这很愚蠢,API 应该完全处理它。

是否有官方的 API 函数可以做到这一点,或者安全的解决方法?

我可以使用 JQuery,但我真的很想为此使用本机函数。

4

2 回答 2

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事件可以调用此函数。

我希望我理解正确:)

于 2010-02-16T16:44:09.383 回答
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/

于 2010-02-11T17:54:49.247 回答