通过jQuery AJAX更新div内容后,CKEditor被破坏

时间:2016-09-09 07:07:36

标签: javascript jquery ajax

我朋友的一个网站正在使用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);
        }
    });
});

1 个答案:

答案 0 :(得分:0)

您正在做的是更改div html,其中实际存在一些iframe和ckeditor正常工作的内容。但是有一种内置的方法来改变ckeditor的内容。它是setData。所以你需要这样做:

editor.setData(data.desc);