extjs ueditor 图片_ExtJs 集成UEditor and KindEditor

贡献两个Extjs 4.2 编辑器插件

1.UEditor(使用页面需要引用UEditor相关文件)

Ext.define('App.ux.UEditor', {

extend: 'Ext.form.field.Text',

alias: ['widget.ueditor'],

//alternateClassName: 'Ext.form.UEditor',

fieldSubTpl: [

'

' name="{name}"',

' rows="{rows}" ',

' cols="{cols}" ',

' placeholder="{placeholder}"',

' size="{size}"',

' maxlength="{maxLength}"',

' readonly="readonly"',

' disabled="disabled"',

' tabIndex="{tabIdx}"',

// ' class="{fieldCls} {inputCls}" ',

' style="{fieldStyle}"',

' autocomplete="off">\n',

'{[Ext.util.Format.htmlEncode(values.value)]}',

'

',

{

disableFormats: true

}

],

ueditorConfig: {},

initComponent: function () {

var me = this;

me.callParent(arguments);

},

afterRender: function () {

var me = this;

me.callParent(arguments);

if (!me.ue) {

me.ue = UE.getEditor(me.getInputId(), Ext.apply(me.ueditorConfig, {

initialFrameHeight: me.height || '300px',

initialFrameWidth: '100%'

}));

me.ue.ready(function () {

me.UEditorIsReady = true;

});

//这块 组件的父容器关闭的时候 需要销毁编辑器 否则第二次渲染的时候会出问题 可根据具体布局调整

var win = me.up('window');

if (win && win.closeAction == "hide") {

win.on('beforehide', function () {

me.onDestroy();

});

} else {

var panel = me.up('panel');

if (panel && panel.closeAction == "hide") {

panel.on('beforehide', function () {

me.onDestroy();

});

}

}

} else {

me.ue.setContent(me.getValue());

}

},

setValue: function (value) {

var me = this;

if (!me.ue) {

me.setRawValue(me.valueToRaw(value));

} else {

me.ue.ready(function () {

me.ue.setContent(value);

});

}

me.callParent(arguments);

return me.mixins.field.setValue.call(me, value);

},

getRawValue: function () {

var me = this;

if (me.UEditorIsReady) {

me.ue.sync(me.getInputId());

}

v = (me.inputEl ? me.inputEl.getValue() : Ext.value(me.rawValue, ''));

me.rawValue = v;

return v;

},

destroyUEditor: function () {

var me = this;

if (me.rendered) {

try {

me.ue.destroy();

var dom = document.getElementById(me.id);

if (dom) {

dom.parentNode.removeChild(dom);

}

me.ue = null;

} catch (e) { }

}

},

onDestroy: function () {

var me = this;

me.callParent();

me.destroyUEditor();

}

});

1.KindEditor(使用页面需要引用KindEditor相关文件)

Ext.define('App.ux.KindEditor', {

extend: 'Ext.form.field.Text',

alias: ['widget.kindeditor'],

alternateClassName: 'Ext.form.KindEditor',

fieldSubTpl: [

'

' name="{name}"',

' rows="{rows}" ',

' cols="{cols}" ',

' placeholder="{placeholder}"',

' size="{size}"',

' maxlength="{maxLength}"',

' readonly="readonly"',

' disabled="disabled"',

' tabIndex="{tabIdx}"',

// ' class="{fieldCls} {inputCls}" ',

' style="{fieldStyle}"',

' autocomplete="off">\n',

'{[Ext.util.Format.htmlEncode(values.value)]}',

'

',

{

disableFormats: true

}

],

kindeditorConfig: {},

initComponent: function () {

var me = this;

me.callParent(arguments);

},

afterRender: function () {

var me = this;

me.callParent(arguments);

if (!me.ke) {

me.ke = KindEditor.create("#" + me.getInputId(), Ext.apply(me.kindeditorConfig, {

height: me.height || '300px',

width: '100%',

afterCreate: function () {

me.KindEditorIsReady = true;

}

}));

//这块 组件的父容器关闭的时候 需要销毁编辑器 否则第二次渲染的时候会出问题 可根据具体布局调整

var win = me.up('window');

if (win && win.closeAction == "hide") {

win.on('beforehide', function () {

me.onDestroy();

});

} else {

var panel = me.up('panel');

if (panel && panel.closeAction == "hide") {

panel.on('beforehide', function () {

me.onDestroy();

});

}

}

} else {

me.ke.html(me.getValue());

}

},

setValue: function (value) {

var me = this;

if (!me.ke) {

me.setRawValue(me.valueToRaw(value));

} else {

me.ke.html(value.toString());

}

me.callParent(arguments);

return me.mixins.field.setValue.call(me, value);

},

getRawValue: function () {

var me = this;

if (me.KindEditorIsReady) {

me.ke.sync();

}

v = (me.inputEl ? me.inputEl.getValue() : Ext.value(me.rawValue, ''));

me.rawValue = v;

return v;

},

destroyKindEditor: function () {

var me = this;

if (me.rendered) {

try {

me.ke.remove();

var dom = document.getElementById(me.id);

if (dom) {

dom.parentNode.removeChild(dom);

}

me.ke = null;

} catch (e) { }

}

},

onDestroy: function () {

var me = this;

me.destroyKindEditor();

me.callParent(arguments);

}

});

使用方法:

{

fieldLabel: 'UEditor',

name: "email",

id: "testueditor",

xtype: 'ueditor',

anchor: '-20',

height: 150,

ueditorConfig: {

//编辑器配置项

}

}, {

fieldLabel: 'KindEditor',

name: "id",

id: "testkindeditor",

xtype: 'kindeditor',

anchor: '-20',

height: 150,

kindeditorConfig: {

//编辑器配置项

}

}

.NET MVC Extjs 门户网站、行业软件 开发

邮箱:287449943@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值