2010-06-06 7 views
19

Parece que no puedo destruir instancias de CKEdit según la documentación.Eliminar instancia CKEdit

considerar lo siguiente:

<input name="txt1" type="text" id="txt1" /><br /> 
<a href="javascript:void(0);" onclick="create()">Create</a><br /> 
<a href="javascript:void(0);" onclick="destroy()">Destroy</a> 
<script type= "text/javascript" > 
<!-- 
function create() { 
    var hEd = CKEDITOR.instances['txt1']; 
    if (hEd) { 
     CKEDITOR.remove(hEd); 
    } 
    hEd = CKEDITOR.replace('txt1'); 
} 
function destroy(){ 
    var hEd = CKEDITOR.instances['txt1']; 
    if (hEd) { 
     CKEDITOR.remove(hEd); 
    } 
} 
--> 
</script> 

Cuando destroy() se ejecuta, CKEDITOR.remove (HED); está siendo llamado. Los clics múltiples para crear() producen varias instancias de CKEditor en la pantalla, pero sus instancias ya no aparecen en las instancias de CKEDITOR.

¿Echo de menos algo?

Respuesta

36

Debe usar hEd.destroy (editor.destroy()).

CKEDITOR.remove() es para uso interno como se indica en la API.

+0

Seguido de un fragmento de código malicioso. Gracias por corregirme. – Laramie

+0

@AlfonsoML Gracias por esto, me acabas de salvar de enfurecer :) –

+1

Sí, así es. Si usa CKEDITOR.remove(), la instancia no se destruye. Debe llamar a algo como: instance.destroy() para eliminar el anterior. –

Cuestiones relacionadas