10

好吧,我首先编写了一个 Javascrip 函数,它会textarea根据您在下拉框中所做的选择来更改 a 中的文本,这是一件非常简单的事情。

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上调用了一个CKeditor Instance,这样我就可以在那个textarea上使用CKEditor。编辑器加载良好,效果很好。但现在 javascript 无法正常工作。

关于这个问题的任何提示?

谢谢

4

2 回答 2

26

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

是他们文档中的示例

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可能不是你的盒子,所以一定要使用正确的名字

于 2010-01-10T22:26:09.823 回答
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 的文本区域的 ID 在哪里。

希望这可以帮助!

于 2011-11-20T19:31:34.813 回答