У меня была такая же проблема, как у Yehonatan, и я нашел этот вопрос очень быстро через Google.Но после использования ответа, предоставленного zaf, я все равно не смог отобразить диалоговое окно в правильном положении, когда редактор загружен в iframe.
Вместо метода position () я использовал offset () способ разместить диалог прямо под панелью инструментов.Вместе с ответом jonespm я пришел к этому коду, который, кажется, работает очень хорошо, также с существующими диалогами.
CKEDITOR.on('dialogDefinition', function(e) {
var dialogName = e.data.name;
var dialogDefinition = e.data.definition;
var onShow = dialogDefinition.onShow;
dialogDefinition.onShow = function() {
this.move(this.getPosition().x, jQuery(this.getParentEditor().container.$).offset().top);
if (typeof onShow !== 'undefined' && typeof onShow.call === 'function')
{
return onShow.call(this);
}
}
});
Надеюсь, этот код может помочь другим с той же проблемой, что и я.