• 使用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);
  • 相关阅读:
    oAuth 认证
    Javascript事件循环机制 浅尝手记
    Javascript闭包与作用域this
    SASS笔记
    FragmentActivity和Activity的区别及何时使用两者
    在fragment中获取Application数据
    Android中得到view在父容器中的位置下标
    设置android模拟器每次启动都按一定比例显示
    eclipse 导入web项目包
    拷贝Eclipse Workspace的设置
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/6032053.html
Copyright © 2020-2023  润新知