工作使用ExtJs,一直也仅仅是使用ExtJs中的相关控件而已,也没有重写过相关的控件,最近业务需要重新重写了TextArea控件,主要是为了获取TextArea中光标的位置
me.downTextArea = Ext.create('Ext.form.field.TextArea', { name : 'rightEditText' }); Ext.override(me.downTextArea, { getCaretPosition : function() { var el = this.inputEl.dom; if (typeof(el.selectionStart) === "number") { return el.selectionStart; } elseif (document.selection && el.createTextRange) { var range = document.selection.createRange(); range.collapse(true); range.moveStart("character", -el.value.length); return range.text.length; } else { throw'getCaretPosition() not supported'; } }, setCaretPosition : function(pos) { var ctrl = this.inputEl.dom; if (ctrl.setSelectionRange) { ctrl.focus(); ctrl.setSelectionRange(pos, pos); } elseif (ctrl.createTextRange) { var range = ctrl.createTextRange(); range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select(); } } }); |
重写的代码是从网上参照其他博客写的,这里只是为了记录。