我首先编写了一个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无效。
有关此问题的任何暗示吗?
由于
答案 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。
希望这有帮助!