il ckeditor e la finestra di dialogo dell’interfaccia utente jQuery non funzionano

Ho tentato incessantemente di risolvere questa situazione frustrante che stavo vivendo. Sto cercando di far funzionare ckEditor all’interno di una finestra di dialogo dell’interfaccia utente jQuery. L’editor è incluso perfettamente e sostituisce la textarea con lo skin ckeditor, ma non riesco a modificare / aggiungere contenuti nel blocco dei contenuti. L’unica soluzione funzionante che ho visto ora era che se facevo clic su “Codice sorgente” all’interno dell’editor e lo rimuovevo, sono in grado di aggiungere contenuti ad esso.

Il mio impianto era puramente e non ho aggiunto ulteriori informazioni / codice. Qualche idea?

Aveva lo stesso problema,

rimuovere gli effetti dal modale aiutato: Rimosso:

 show: "scale", hide: "puff", 

Ora la mia chiamata appare così:

 $("#report").dialog({ title: "", bgiframe: true, autoOpen: false, width: 990, height: 620, modal: true, draggable: true, resizable: true, resizeStop: function(event, ui) { var y = $(event.target).height(); repEditor.resize( "99%", y - 10 ); }, buttons: { 'Close': function() { $(this).dialog('close'); } } }); 

Per le versioni di jQuery-UI (1.10+) e jQuery (1.10+) e CKEditor 3.6, questa soluzione sembra funzionare:

 _moveToTop: function( event, silent ) { var $parent = this.uiDialog.parent(); var $elementsOnSameLevel = $parent.children(); var heighestZIndex = 0; $.each($elementsOnSameLevel, function(index, element) { var zIndexOfElement = $(element).css('z-index'); if (zIndexOfElement) { var zIndexOfElementAsNumber = parseInt(zIndexOfElement) || 0; if (zIndexOfElementAsNumber > heighestZIndex) { heighestZIndex = zIndexOfElementAsNumber; } } }); var currentZIndex = this.uiDialog.css('z-index'); var moved; if (currentZIndex >= heighestZIndex) { moved = false; } else { this.uiDialog.css('z-index', heighestZIndex + 1); moved = true; } if ( moved && !silent ) { this._trigger( "focus", event ); } return moved; } 

È ansible modificare il file in linea (non consigliato) o semplicemente sovrascrivere la funzionalità jQuery-UI predefinita in un file JS separato che viene caricato dopo jQuery-UI, ma prima che venga creata la finestra di dialogo.

 $.widget("ui.dialog", $.ui.dialog, { _moveToTop: function( event, silent ) { //Logic from above } }); 

In alternativa a mantenere l’animazione “mostra” e “nascondi”, crea l’istanza dell’editor dopo che l’evento “mostra” termina con una funzione di callback completa: opzione di “mostra”

 $("#report").dialog({ title: "", bgiframe: true, autoOpen: false, width: 990, height: 620, modal: true, // start my suggestion show: { effect: "scale", complete: function() { $( "#selector" ).ckeditor(); } }, hide: "puff", // end my suggestion draggable: true, resizable: true, resizeStop: function(event, ui) { var y = $(event.target).height(); repEditor.resize( "99%", y - 10 ); }, buttons: { 'Close': function() { $(this).dialog('close'); } } });