解决 CKEditor 在blur时 用 getData() 不能实时/及时/立即获取数据内容
原文及更多精彩,在这里: http://yysource.sourceforge.net/?p=62
当 CKEditor 的内容是“1111”时,鼠标移出编译器并点击,则触发 blur 事件,此时用 getData() 可能无法获取到实时的内容,获取的结果很可能为空。所以比较好的办法是这样:
window.exView = Backbone.View.extend({editorRender: function () {editor.on("blur", function(e) {e.listenerData.model.set("ha_body", this.document.getBody().$.innerHTML);}, null, this);},});
先简单介绍一下:此段代码是在一个 Backbone 框架的View类里面,调用 CKEditor 的专用事件绑定函数 on 对 blur 事件进行绑定。调用 on 时传进去的 this 是 exView 对象,这样 exView 对象在 on 的匿名函数里面就会以 e.listenerData 的形式存在,e.listenerData.model 是 Backbone.Model 类的扩展。
重点:this.document.getBody().$.innerHTML 就是 CKEditor 编辑器里的实时内容了。