首页 > 代码库 > 使用JS在textarea在光标处插入内容

使用JS在textarea在光标处插入内容

    // 在光标处插入字符串    // myField    文本框对象    // myValue 要插入的值    function insertAtCursor(myField, myValue)    {        //IE support        if (document.selection)        {            myField.focus();            sel            = document.selection.createRange();            sel.text    = myValue;            sel.select();        }        //MOZILLA/NETSCAPE support        else if (myField.selectionStart || myField.selectionStart == ‘0‘)        {            var startPos    = myField.selectionStart;            var endPos        = myField.selectionEnd;            // save scrollTop before insert            var restoreTop    = myField.scrollTop;            myField.value    = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);            if (restoreTop > 0)            {                // restore previous scrollTop                myField.scrollTop = restoreTop;            }            myField.focus();            myField.selectionStart    = startPos + myValue.length;            myField.selectionEnd    = startPos + myValue.length;        } else {            myField.value += myValue;            myField.focus();        }    }

 

       function insertText() {            var obj = document.getElementById("文本框");            var str = "[#$%$#]插入的内容";               if (document.selection) {                   obj.focus();                   var sel = document.selection.createRange();                   sel.text = str;               } else if (typeof obj.selectionStart === ‘number‘ && typeof obj.selectionEnd === ‘number‘) {                   var startPos = obj.selectionStart;                   var endPos = obj.selectionEnd;                    var tmpStr = obj.value;                    obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);                } else {                    obj.value += str;            }        }

 

 

//jQuery光标处插入文本        $(document).ready(function () {            $("#btnInsert").click(function () {                var obj = $("#txtquestion").get(0);                var str = "[#$%$#]";                if (document.selection) {                    obj.focus();                    var sel = document.selection.createRange();                    sel.text = str;                } else if (typeof obj.selectionStart === ‘number‘ && typeof obj.selectionEnd === ‘number‘) {                    var startPos = obj.selectionStart;                    var endPos = obj.selectionEnd;                    var tmpStr = obj.value;                    obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);                } else {                    obj.value += str;                            });        });

 

        (function ($) {            $.fn.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);

 

使用JS在textarea在光标处插入内容