一旦CKeditor实例被调用,Javascript就无法在textarea中更改文本

时间:2010-01-10 22:15:53

标签: javascript html ckeditor

我首先编写了一个Javascrip函数,根据您在下拉框中所做的选择,更改textarea中的文本,这非常简单。

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];
}

这非常好用,并且改变了textarea中的文本。但后来我在该textarea上调用了一个CKeditor实例,以便我可以在该textarea上使用CKEditor。编辑加载得很好,效果很好。但现在javascript无效。

有关此问题的任何暗示吗?

由于

2 个答案:

答案 0 :(得分:26)

您将要在编辑器上使用setData方法。

此处is the example from their docs

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

这意味着您的代码将如下所示:

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可能不会引用您的信箱,因此请务必使用正确的名称

答案 1 :(得分:2)

我在这个问题上花了好几天,每个人都给我一些奇怪的解决方案。检查了他们的API,它甚至给出了一个例子。

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

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

其中'YOUREDITORID'是要使用的CKeditor的textarea的ID。

希望这有帮助!