2013-11-14 25 views
0

单击链接后调用此get_content函数。无法将动态加载的teaxtarea转换为ckeditor

function get_content(n) 
{ 
    var hr=new XMLHttpRequest(); 
    var url="./updatecontent.php"; 
    var vars="id="+n; 
    hr.open("POST",url,true); 
    hr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    hr.onreadystatechange=function() 
    { 
     if(hr.readyState==4 && hr.status==200) 
     { 
      var return_data=hr.responseText; 
      document.getElementById("content").innerHTML=return_data; 
     } 
    } 
    hr.send(vars); 
    document.getElementById("content").innerHTML='<img src="./img/loading.gif">'; 
} 

<div id="content"></div> 

以下是响应数据

<div id="text-editor" style="width:100%;"> 
<form action="" method="post"> 
<textarea class="ckeditor" name="editor1" id="txt1"></textarea> 
<input type="submit" name="update" value="Update"> 
</form> 
</div> 
<script src="./ckeditor/ckeditor.js"></script> 

的响应数据succefully加到div的ID = “内容”

到CKEditor的相对链路是correct.But textarea的是不转换成CKeditor。 错在哪里?请帮忙。

+0

哎呀。我只需要在succesfull ajax响应后添加这一行。 CKEDITOR.replace('txt1'); –

回答

3

在这种情况下,您需要在内容更改后致电CKEDITOR.replace('editor1')

所以你的情况这将是

function get_content(n) 
{ 
    var hr=new XMLHttpRequest(); 
    var url="./updatecontent.php"; 
    var vars="id="+n; 
    hr.open("POST",url,true); 
    hr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    hr.onreadystatechange=function() 
    { 
     if(hr.readyState==4 && hr.status==200) 
     { 
      var return_data=hr.responseText; 
      document.getElementById("content").innerHTML=return_data; 
      CKEDITOR.replace('editor1'); // <-- add this line 
     } 
    } 
    hr.send(vars); 
    document.getElementById("content").innerHTML='<img src="./img/loading.gif">'; 
} 
相关问题