1.Jquery函數實現:
- $(function() {
- /* 在textarea處插入文本--Start */
- (function($) {
- $.fn
- .extend({
- insertContent : function(myValue, t) {
- var $t = $(this)[0];
- if (document.selection) { // ie
- this.focus();
- var sel = document.selection.createRange();
- sel.text = myValue;
- this.focus();
- sel.moveStart('character', -l);
- var wee = sel.text.length;
- if (arguments.length == 2) {
- var l = $t.value.length;
- sel.moveEnd("character", wee + t);
- t <= 0 ? sel.moveStart("character", wee - 2 * t
- - myValue.length) : sel.moveStart(
- "character", wee - t - myValue.length);
- sel.select();
- }
- } else if ($t.selectionStart
- || $t.selectionStart == '0') {
- var startPos = $t.selectionStart;
- var endPos = $t.selectionEnd;
- var scrollTop = $t.scrollTop;
- $t.value = $t.value.substring(0, startPos)
- + myValue
- + $t.value.substring(endPos,
- $t.value.length);
- this.focus();
- $t.selectionStart = startPos + myValue.length;
- $t.selectionEnd = startPos + myValue.length;
- $t.scrollTop = scrollTop;
- if (arguments.length == 2) {
- $t.setSelectionRange(startPos - t,
- $t.selectionEnd + t);
- this.focus();
- }
- } else {
- this.value += myValue;
- this.focus();
- }
- }
- })
- })(jQuery);
- /* 在textarea處插入文本--Ending */
- });
調用方法:
$(文本域選擇器).insertContent("插入的內容");
//$(文本域選擇器).insertContent("插入的內容",數值); //根據數值選中插入文本內容兩邊的邊界, 數值: 0是表示插入文字全部選擇,-1表示插入文字兩邊各少選中一個字符。
2.JavaScript實現:
- function insertText(obj,str) {
- if (document.selection) {
- var sel = document.selection.createRange();
- sel.text = str;
- } else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
- var startPos = obj.selectionStart,
- endPos = obj.selectionEnd,
- cursorPos = startPos,
- tmpStr = obj.value;
- obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
- cursorPos += str.length;
- obj.selectionStart = obj.selectionEnd = cursorPos;
- } else {
- obj.value += str;
- }
- }
- function moveEnd(obj){
- obj.focus();
- var len = obj.value.length;
- if (document.selection) {
- var sel = obj.createTextRange();
- sel.moveStart('character',len);
- sel.collapse();
- sel.select();
- } else if (typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number') {
- obj.selectionStart = obj.selectionEnd = len;
- }
- }