11
votes

Positionnement de la boîte de dialogue CKEditor

La boîte de dialogue Windows pour CKeditor par défaut apparaît au milieu de la page, mais si la page est une iframe avec une grande hauteur, les boîtes de dialogue apparaissent sur la page.

est-il possible de configurer CKEditor pour positionner les boîtes de dialogue dans un quadrant différent de la page? Par exemple, hautmédiaire?


0 commentaires

5 Réponses :



14
votes

Oui, le lien mdaubs donne vous guidera pour faire ce que vous voulez.

Je devais le faire dans le passé et que l'extrait suivant démontrera une solution à votre problème: P>

CKEDITOR.on('dialogDefinition', function(e) {
    var dialogName = e.data.name;
    var dialogDefinition = e.data.definition;
    dialogDefinition.onShow = function() {
            this.move(this.getPosition().x,0); // Top center
    }
})


1 commentaires

J'ai dû modifier le 0 un peu, puisque notre instance de rédaction pourrait être n'importe où dans l'IFrame. Remplacé par jQuery (ce.getParentAditor (). Conteneur. $). Position (). Top . Mais au moins votre solution m'a donné la majeure partie de la réponse!



9
votes

La solution de ZAF fonctionne en ce sens qu'elle permet de positionner la boîte de dialogue, mais je l'ai trouvé pour produire un tas d'effets secondaires quant à la manière dont la boîte de dialogue fonctionne (omis d'afficher l'URL de l'image dans la boîte de dialogue Image est. Un exemple).

Il s'est avéré que l'original Onshow () La méthode qui est remplacée renvoie une valeur significative que nous devrions conserver. Cela pourrait être dû à un plugin ou à quelque chose, mais voici le code qui a finalement fonctionné pour moi: xxx


1 commentaires

Cette solution était bonne sauf que j'avais quelques plugins plus anciens qui ne fonctionnaient pas et je voudrais jeter l'erreur "TypeError non capturé: impossible de lire" appel "de non défini". Je devais vérifier si (type d'ershow! == 'indéfini' && typeof ershow.call === 'fonction') plutôt que de toujours renvoyer le résultat. Après cela, ils semblaient tous travailler bien.



1
votes

Je viens d'avoir le même problème que Yehonatan et j'ai trouvé cette question vraiment rapide via Google. Mais après avoir utilisé la réponse fournie par ZAF, je n'ai toujours pas reçu de boîte de dialogue pour apparaître dans la position appropriée lorsque l'éditeur est chargé dans un iframe.

Au lieu de la position de position () J'ai utilisé la méthode offset () à Placez une boîte de dialogue sous la barre d'outils. En collaboration avec la réponse de JonesPM, je suis venu à ce code qui semble fonctionner très bien, également avec des dialogues existants. xxx

espérons que ce code peut aider les autres avec le même problème que moi .


0 commentaires

0
votes

La syntaxe correcte est la suivante: xxx


0 commentaires