2010-08-04 11 views
3

J'essaie de trouver un moyen de définir par programme la position d'une boîte de dialogue CKEditor chaque fois qu'une nouvelle fenêtre est ouverte. Le réglage actuel de la partie position semble facile, mais ce que je n'arrive pas à comprendre, c'est comment piéger l'événement d'une nouvelle boîte de dialogue CKEditor en cours de création et d'affichage.Définir par programme la position des boîtes de dialogue de CKEditor

Je suppose que ce sera quelque chose le long des lignes de ...

CKEDITOR.on('dialogCreated', function(e) { ... }); 

Mais ne peut pas sembler trouver réellement dans la documentation. Des conseils/astuces?

+1

Assurez-vous de rattacher les événements par défaut comme oleq mentions ici: http://stackoverflow.com/questions/12752180/ckeditor-3-dialog-positioning/12764449#12764449 – gbusman

Répondre

5

Après avoir passé plusieurs heures aujourd'hui, j'ai été en mesure de comprendre cela par une chance complète. Les définitions de dialogues peuvent être manipulées au moment du chargement. Au sein de votre fichier config.js, ajoutez ce qui suit:

CKEDITOR.on('dialogDefinition', function(e) { 
    var dialogName = e.data.name; 
    var dialogDefinition = e.data.definition; 

    dialogDefinition.onShow = function() { 
     // Calculate your newX and newY ... 
     this.move(newX, newY); 
    } 
} 

Si vous voulez régler la position pour une boîte de dialogue spécifique, vous pouvez utiliser dialogName pour tester pour elle.