2012-08-13 34 views
4

我尝试通过使用setData(“”)清除内容后插入内容,然后使用insertText方法向其插入内容。但内容仍然是空的。CKEditor - 插入文本setData后不工作

相关的代码:

CKEDITOR.instances.content.setData(""); 
CKEDITOR.instances.content.focus(); 
CKEDITOR.instances.content.insertText("the text I want to insert"); 

上面的代码不工作。任何人都可以帮助我? 找到另一种方法来清除CKEditor中的内容,而不是使用setData(“”)或使setText方法在setData之后工作,这两种方法都有助于解决我的问题。 非常感谢!

回答

1

既不适合我。必须是一个错误。但用jquery有一个方法。

$('#content').val('the text I want to insert'); 

对于jQuery的适配器看看这里:http://ckeditor.com/blog/CKEditor_for_jQuery

+0

感谢斯文,这是真正有用的 – 2012-08-18 19:46:23

1

我遇到了同样的问题,并找到了解决办法。当“清除”你的编辑器时,不要使用空字符串,而应该使用CKEDITOR.yourEditor.setData('<span></span>'),或者(可能)使用其他等效的“有效html”,它不显示任何内容。我现在只用跨度试过了。随后对setData方法的调用不会失败。 享受。

3

我有一个相同的问题,但问题是setData()方法是异步的。如果您想在setData()之后运行某项操作,则必须创建一个callback method

var fooCallback = function(){ 
    CKEDITOR.instances.content.focus(); 
    CKEDITOR.instances.content.insertText("the text I want to insert"); 
}; 
CKEDITOR.instances.content.setData("", fooCallback); 
+0

你是完美的阿拉伯语我们说 انتاراجلكفائه +1 – Marwan 2015-05-14 12:10:50

0

我有同样的问题,但按照接受的解决方案建议安装jquery适配器不是我的选择。

我能够使其与第二呼叫以下解决方法工作:

setTimeout(function(){ 
    CKEDITOR.instances["myEditor"].setData(newText); 
}, 0); 

我从这里的想法:https://dev.ckeditor.com/ticket/10663#comment:7