是否可以在不使用JQuery的情况下将数据加载到ckeditor中?如果可能的话,我想为此使用内联脚本标记。我能找到的所有例子都与Jquery有关,在我的情况下这不是最优的。
到目前为止,我在CKs网站上找到的例子是:
CKEDITOR.instances.editor1.setData( '<p>Some other editor data.</p>', function()
{
this.checkDirty(); // true
});
我尝试将其与内联脚本标记一起使用,但它会导致编辑器崩溃。如果我在JQuery中使用它,它将按预期工作。
答案 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
});
答案 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>'