jQuery MiniUI
标题:
关于CKEditor设值问题
[打印本页]
作者:
yanfei
时间:
2014-3-26 14:32:33
标题:
关于CKEditor设值问题
你好,我自己封装了CKEditor为MiniUI控件。代码如下:
mini.CKEditor = function () {
mini.CKEditor.superclass.constructor.call(this);
}
mini.extend(mini.CKEditor, mini.ValidatorBase, {
uiCls: "mini-ckeditor",
_InputType: "text",
formField: true,
_create: function () {
this.el = document.createElement("span");;
},
_doEmpty: function () {
this._textEl.placeholder = this.emptyText;
if (this.emptyText) {
mini._placeholder(this._textEl);
}
},
initEditor: function (id) {
this._valueEl = CKEDITOR.replace(id);
},
setEmptyText: function (value) {
this.emptyText = "";
},
getValue: function () {
return this._valueEl.getData();
},
setValue: function (value) {
this._valueEl.setData(value);
},
getAttrs: function (el) {
var attrs = mini.CKEditor.superclass.getAttrs.call(this, el);
var jq = jQuery(el);
mini._ParseString(el, attrs,
["value"
]
);
return attrs;
}
});
mini.regClass(mini.CKEditor, 'ckeditor');
然后在页面加载的时候,先调用initEditor()方法,然后调用form.setData()方法,发现在IE浏览器中有时候设置值会失败,但在希望给出指导帮助解决。
作者:
factory
时间:
2014-3-26 15:03:24
form.setData() 是针对miniui表单控件的,
你要获取值,单独获取
作者:
yanfei
时间:
2014-3-26 15:39:59
factory 发表于 2014-3-26 15:03
form.setData() 是针对miniui表单控件的,
你要获取值,单独获取
表单中如下写法:
<textarea id='remark' name='remark' class='mini-ckeditor' style='visibility:hidden'></textarea>
就是不想单独设值和取值,所以按照miniUI的方式扩展了一个CKEditor的控件。可以用form.getData() form.setData()方法,想代码简洁一点。
看了下dom结构,发现ckeditor是一个iframe, 所以估计是设值时iframe还没有加载完成,所以设值失败。
作者:
yanfei
时间:
2014-3-26 16:43:03
自己解决了。
setValue: function (value) {
var id = this.id;
CKEDITOR.on('instanceReady', function (e) {
if (e.editor.name == id) {
e.editor.setData(value);
}
});
},
欢迎光临 jQuery MiniUI (http://miniui.com/discuss/)
Powered by Discuz! X2