我尝试使用setData(“”)清除内容后插入一些内容,然后使用insertText方法向其中插入内容。但内容仍然是空的。
相关代码:
CKEDITOR.instances.content.setData("");
CKEDITOR.instances.content.focus();
CKEDITOR.instances.content.insertText("the text I want to insert");
上面的代码不起作用。有人可以帮帮我吗? 找到另一种方法来清除CKEditor中的内容而不是使用setData(“”)或使setText方法在setData之后工作都有助于解决我的问题。 非常感谢!
答案 0 :(得分:4)
我遇到了同样的问题,但关键是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);
答案 1 :(得分:1)
既不适合我。一定是个bug。但是有了jquery,就有了一种方法。
$('#content').val('the text I want to insert');
对于jquery适配器,请查看:http://ckeditor.com/blog/CKEditor_for_jQuery
答案 2 :(得分:1)
我遇到了同样的问题并找到了解决方案。在“清除”编辑器时,不要使用空字符串,而是使用CKEDITOR.yourEditor.setData('<span></span>')
或(可能)其他等效的“有效html”,它不显示任何内容。我现在只用跨度试过这个。后续调用setData方法不会失败。
请享用。
答案 3 :(得分:0)
我遇到了同样的问题但是按照接受的解决方案的建议安装jquery适配器对我来说不是一个选择。
我能够在第二次调用时使用以下解决方法:
setTimeout(function(){
CKEDITOR.instances["myEditor"].setData(newText);
}, 0);
我从这里得到了这个想法:https://dev.ckeditor.com/ticket/10663#comment:7