Si uno crea un CKEditor mediante:
<textarea id="editor1" class="ckeditor" name="editor1" ></textarea>Uno se espera acceder a su contenido usando lo siguiente:
$('#editor1').html();Pero pronto veremos que esto no funciona. Esto se debe a que el CKEditor convierte el textarea en el siguiente código HTML:
<span id="cke_editor2" class="cke_skin_kama" lang="es" tabindex="0" title=" " dir="ltr" onmousedown="return false;"><span class="cke_browser_gecko"><span class="cke_wrapper cke_ltr"><table class="cke_editor" cellspacing="0" cellpadding="0" border="0"><tbody>
<tr style="-moz-user-select: none;">
<td id="cke_top_editor2" class="cke_top">
<div class="cke_toolbox">
<span id="cke_84" class="cke_toolbar">
</span>
<span id="cke_90" class="cke_toolbar">
</span>
<span id="cke_99" class="cke_toolbar">
</span>
<span id="cke_106" class="cke_toolbar">
</span>
<div class="cke_break"/>
<span id="cke_117" class="cke_toolbar">
</span>
<span id="cke_124" class="cke_toolbar">
</span>
<span id="cke_130" class="cke_toolbar">
</span>
<span id="cke_135" class="cke_toolbar">
</span>
<span id="cke_139" class="cke_toolbar">
</span>
<div class="cke_break"/>
<span id="cke_148" class="cke_toolbar">
</span>
<span id="cke_153" class="cke_toolbar">
</span>
<span id="cke_156" class="cke_toolbar">
</span>
</div>
<a id="cke_160" class="cke_toolbox_collapser" onclick="CKEDITOR.tools.callFunction(139)"/>
</td>
</tr>
<tr>
<td id="cke_contents_editor1" class="cke_contents" style="height: 200px;" role="region" title="Editor de texto enriquecido, editor2">
<iframe frameborder="0" src="javascript:void(%20setTimeout(%20function()%7Bdocument.open()%3Bdocument.write(%20window.parent%5B%20%22_cke_htmlToLoad_editor2%22%20%5D%20)%3Bdocument.close()%3Bwindow.parent%5B%20%22_cke_htmlToLoad_editor2%22%20%5D%20%3D%20null%3B%7D%2C%200%20)%20)" allowtransparency="true" tabindex="-1" style="width: 100%; height: 100%;" role="region" title=" ">
</iframe>
</td>
</tr>
<tr style="-moz-user-select: none;">
</tr>
</tbody>
</table>
<style>
</style>
</span>
</span>
</span>
He puesto en negrita la parte que nos interesa. Entonces, para acceder al contenido del CKEditor:
$('#cke_contents_editor1 iframe').contents().find( 'body' ).html()
"editor1", en negrita, es el id del nuestro textarea. Es decir, realmente estamos cogiendo el código html del body dentro del iframe que CKEditor ha creado.
Nada más. Espero que esto le haya servido a alguien.