我朋友的一个网站正在使用CKEditor 3.6.3。当我们通过jQuery / AJAX更新与CKEditor集成的div的内容时,CKEditor本身就会被破坏。如何解决这个问题?请注意,我们无法在此阶段更新CKEditor。
这就是我们将CKEditor集成到div中的方法:
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<?php
include_once "ckeditor/ckeditor.php";
require_once 'ckfinder/ckfinder.php' ;
$CKEditor = new CKEditor();
$CKEditor->basePath = '/ckeditor/';
$CKEditor->config['width'] = 600;
$CKEditor->textareaAttributes = array("cols" => 80, "rows" => 10);
$initialValue = 'This is some sample text.';
CKFinder::SetupCKEditor( $CKEditor,'ckfinder/') ;
?>
HTML:
<label for="desc">Description:</label>
<div class="ckeditor" id="desc"><?php $CKEditor->editor('description', $description);?></div>
的JQuery / AJAX:
$.ajax({
beforeSend: startRequest,
url: "ajax/ajax.php",
cache: false,
data: "id="+id,
type: "POST",
dataType: "json",
success: function(data){
if(data.error != "No result found.")
{
$("#desc").html(data.desc);
}
});
});
答案 0 :(得分:0)
您正在做的是更改div
html
,其中实际存在一些iframe和ckeditor正常工作的内容。但是有一种内置的方法来改变ckeditor的内容。它是setData
。所以你需要这样做:
editor.setData(data.desc);