欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决 CKEditor 在blur时 用 getData() 不能实时/及时/立即获取数据内容

程序员文章站 2024-01-30 12:14:58
...

 

原文及更多精彩,在这里: 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 编辑器里的实时内容了。