2010-02-08 10 views
3

Je dois maximiser/redimensionner par programme une boîte de dialogue CKEditor IFrame (c'est-à-dire une boîte de dialogue CKEditor avec un bouton "ok" et "cancel", pour le reste). J'aurais besoin de la boîte de dialogue pour rester centré sur l'écran.Agrandir/Redimensionner une fenêtre de dialogue dans CKEDitor

Je ne vois que des fonctions pour redimensionner et repositionner la fenêtre, mais pour les utiliser, il faudrait d'abord calculer les dimensions de la fenêtre pour la recentrer. C'est stupide pour un certain nombre de raisons, l'API devrait gérer cela complètement.

Existe-t-il une fonction API officielle pour ce faire, ou une solution de contournement sûre?

Je peux utiliser JQuery mais j'aimerais vraiment utiliser des fonctions natives pour cela.

+0

Le iFrame est situé dans une boîte de dialogue (pop-up) et CKEditor est dans la boîte de dialogue? – Upperstage

+0

Non, il s'agit d'une boîte de dialogue personnalisée lorsque vous cliquez sur un bouton CKEditor et que cette boîte de dialogue contient un IFRAME. C'est la méthode de choix si vous ne pouvez pas ou ne pouvez pas utiliser le système de dialogue intégré de CKEditor. –

+0

Y a-t-il une chance que vous utilisiez jQuery ou ExtJS? – Upperstage

Répondre

2

Si vous avez à la fois de redimensionner et de re-position, il ne peut pas être si difficile faire une fonction:

(il est pseudo javascript, puisque je n'ai pas le temps de polir, donc essentiellement idée)

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); 
} 

et à tout moment, vous pouvez simplement appeler dialogResizeCentered(d,600,400);

ou? Ou si vous voulez que votre dialogue reste centré, je suis sûr qu'il y a quelque chose comme window.onResize événement pour appeler cette fonction.

J'espère que je comprends :) correctement

+0

@Adam, redimensionner le dialogue a un certain nombre d'effets secondaires (j'ai besoin de redimensionner l'iframe incorporé, il a une hauteur absolue en raison de certains problèmes de navigateur, et éventuellement repositionner certains boutons). Je voudrais garder cela aussi natif que possible, car je développe un plug-in que je veux mettre dans (et distribuer comme) un produit autonome. C'est pourquoi j'espère trouver une fonction native dans l'API CKEditor (toujours pas très bien documentée). Sinon, je pourrais bien utiliser quelque chose comme ça. –

1

J'utilise CKEditor moi-même, mais ont choisi d'utiliser la boîte de dialogue de l'interface utilisateur de jquery pour mes dialogues personnalisés car il est beaucoup plus flexible et riche en fonctionnalités de la boîte, il est disponible à l'adresse:

http://docs.jquery.com/UI/Dialog

Mais si vous préférez sur l'aide d'un dialogue CKEditor personnalisé alors la position de jQuery():

http://api.jquery.com/position/

hauteur(), largeur() et offset() sont très précieux pour déterminer la taille et la position de t il dialogue:

http://api.jquery.com/category/manipulation/style-properties/

+1

A bientôt @mythz, cela semble très intéressant. Pour le moment, j'ai tellement investi dans le système de dialogue CKEditor que je ne veux pas changer avec le projet en cours, mais pour le prochain projet, je vais certainement regarder ça. –

Questions connexes