yo sólo tenía el mismo problema que Yehonatán y encontraron esta pregunta muy rápido a través de Google. Pero después de usar la respuesta proporcionada por zaf, aún no recibí un diálogo para que aparezca en la posición correcta cuando el editor se carga dentro de un iframe.
En lugar del método de posición() utilicé el método de desplazamiento() para colocar un cuadro de diálogo justo debajo de la barra de herramientas. Junto con la respuesta de jonespm, llegué a este código que parece funcionar muy bien, también con los diálogos existentes.
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);
}
}
});
Esperemos que este código pueda ayudar a otros con el mismo problema que yo.
Tuvimos que modificar el 0 un poco, ya que nuestra instancia de editor podría estar en cualquier parte del iFrame. Se reemplazó con 'jQuery (this.getParentEditor(). Container. $). Position(). Top'. ¡Pero al menos tu solución me dio la mayor parte de la respuesta! – Tarka