如何将数据加载到ckeditor onload中

时间:2013-01-04 03:15:51

标签: javascript jquery ckeditor

是否可以在不使用JQuery的情况下将数据加载到ckeditor中?如果可能的话,我想为此使用内联脚本标记。我能找到的所有例子都与Jquery有关,在我的情况下这不是最优的。

到目前为止,我在CKs网站上找到的例子是:

CKEDITOR.instances.editor1.setData( '<p>Some other editor data.</p>', function()
    {
        this.checkDirty();  // true
    });

我尝试将其与内联脚本标记一起使用,但它会导致编辑器崩溃。如果我在JQuery中使用它,它将按预期工作。

4 个答案:

答案 0 :(得分:13)

以下是使用CKEDITOR API而不使用jQuery的示例。请观察调用replace函数,该函数使用textarea内容初始化CKEDITOR的“editor1”实例。我认为这是填充内容onload的最简单方法,但如果这还不够,你可以看到我已经使用你问题中的代码用“其他一些编辑器数据”来填充CKEDITOR。

HTML:

<textarea id="editor1">
    Hello, world!
</textarea>​

使用Javascript:

CKEDITOR.replace( 'editor1', {
    toolbar: 'Basic',
    uiColor: '#9AB8F3'
});
CKEDITOR.instances.editor1.setData( '<p>Some other editor data.</p>', function()
{
    this.checkDirty();  // true
});

http://jsfiddle.net/cDzqp/

答案 1 :(得分:5)

我知道这个问题已经过时了,但我刚刚想出了我的解决方案,我觉得它更清洁,所以我在这里加上我的两分钱,以便将来可能有同样的问题。

CKEditor会自动使用旧的textarea中的内容来设置新文本区域的内容。换句话说,改变textarea的内容就足够了,然后再调用replace命令。这将是代码:

document.getElementById("editor1").value = "<p>Some other editor data.</p>";
CKEDITOR.replace("editor1");

完成:)

答案 2 :(得分:0)

如果有人正在寻找将内容添加到CKEditor中现有内容的解决方案,这将有所帮助。 -我正在使用CKEditor 4.15.0

CKEDITOR.replace( 'editor1', {
toolbar: 'Basic',
uiColor: '#9AB8F3'});

CKEDITOR.instances.editor1.setData( CKEDITOR.instances.editor1.getData + 'New Content Here', function()
{
    this.checkDirty();  // true
});

根据我的要求进行了修改,根据帕特里克·琼斯的回答

谢谢

答案 3 :(得分:-1)

将输入数据转换为HTML,以加载到编辑器中。尽管编辑器能够处理非HTML数据(如BBCode),但它只能在运行时处理HTML数据。数据处理器的作用是通过此功能将输入数据转换为HTML。

查看源文件

// Tranforming BBCode data, with a custom BBCode data processor available.
var data = 'This is [b]an example[/b].';
var html = editor.dataProcessor.toHtml( data ); // '<p>This is <b>an example</b>.</p>'