2010-01-10 2 views
9

글자는 처음에 드롭 다운 상자에서 선택한 항목에 따라 textarea의 텍스트를 변경하는 Javascrip 함수를 작성했습니다. 정말 간단한 것입니다.Javascript는 textarea에서 텍스트를 한 번 변경할 수 없습니다. CKeditor 인스턴스가 호출되었습니다.

HTML

<form name="formconteudo"> 
<select name="selectpage" onChange="change();"> 
<option value="1">something</option> 
<option value="2">another thing</option> 
<option value="3">going crazy</option> 
</select> 
</form> 

JS

var Code = new Array("", "Selected 1", "Selected 2", "Selected 3"); 
function change() 
{ 
var ID = formconteudo.selectpage.options[formconteudo.selectpage.selectedIndex].value; 
document.formconteudo.ckeditor.value = Code[ID]; 
} 

이 꽤 좋은 일을하고 텍스트 영역의 텍스트를 변경했습니다. 그런 다음 해당 텍스트 영역에서 CKeditor 인스턴스를 호출하여 해당 텍스트 영역에서 CKEditor를 사용할 수 있도록했습니다. 편집기가 잘로드되고 훌륭하게 작동합니다. 하지만 지금은 자바 스크립트가 작동하지 않습니다.

문제에 대한 힌트가 있습니까?

감사

답변

26

당신은 편집기에 setData 방법을 사용하고자 할 것입니다.

여기 is the example from their docs.

var Code = new Array("", "Selected 1", "Selected 2", "Selected 3"); 
function change() 
{ 
var ID = formconteudo.selectpage.options[formconteudo.selectpage.selectedIndex].value; 
CKEDITOR.instances.editor1.setData('<p>' + Code[ID] + '</p>'); 
} 

instances.editor1이 상자를 참조하지 않을 수 있습니다, 그래서 올바른 이름 난했습니다

+0

빙고, 그건 그렇습니다. 감사. –

+0

감사합니다. 너도 마찬가지 야. –

2

을 사용하십시오 : 코드는 다음과 같이 보일 것을 의미

CKEDITOR.instances.editor1.setData('<p>This is the editor data.</p>'); 

이 문제에 대해 많은 시간을 보냈지 만, 모든 사람들은 저에게 이상한 해결책을 계속 제공해주었습니다. 그들의 API를 확인하고 예를 보여줍니다. 'YOUREDITORID'는 CKeditor위한 텍스트 영역의 ID이다

CKEDITOR.instances.YOUREDITORID.updateElement(); 
    alert(document.getElementById('YOUREDITORID').value); // The current editor data. 

http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#setData

사용한다.

희망이 도움이됩니다.