2012-10-05 3 views
4

J'ai vérifié et essayé la méthode affichée ici pour définir où les boîtes de dialogue de ckeditor pop-up:CKEditor 3 Dialog Positionnement

Programatically set the position of CKEditor's dialogs

Cela semble être soit dépréciée ou incomplète. Lorsque vous tentez cette opération pour la boîte de dialogue 'lien', la boîte de dialogue ne se formate pas correctement, comme si cette définition onShow remplace l'action par défaut plutôt que d'y ajouter. Des suggestions pour modifier ce code ou une nouvelle méthode pour positionner la boîte de dialogue de lien plus près de la barre de menu?

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

    dialogDefinition.onShow = function() { 
     this.move(200, 100); 
    } 
}) 

Répondre

4

Vous avez raison. Votre code remplace la définition de base onShow.

Ce que vous devez faire est de simplement enregistrer un défaut (générique) onShow, puis l'écraser de sorte qu'il appelle l'un et sauvé éventuellement votre code exécute:

CKEDITOR.on('dialogDefinition', function(event) { 
    var dialogDefinition = event.data.definition, 
     genericOnShow = dialogDefinition.onShow; 

    dialogDefinition.onShow = function() { 
     genericOnShow.apply(this); 
     this.move(10, 10); 
     // ...or anything you want ;) 
    } 
}); 

Voilà!

PS. N'oubliez pas de toujours passer le contexte avec apply ou call.

+0

Vous êtes l'homme! Merci. – gbusman